diff options
Diffstat (limited to 'kamon-status/src/api/StatusApi.ts')
-rw-r--r-- | kamon-status/src/api/StatusApi.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/kamon-status/src/api/StatusApi.ts b/kamon-status/src/api/StatusApi.ts index d00761e5..25d525d2 100644 --- a/kamon-status/src/api/StatusApi.ts +++ b/kamon-status/src/api/StatusApi.ts @@ -44,6 +44,18 @@ export interface MetricRegistry { metrics: Metric[] } +export interface InstrumentationModule { + description: string + isEnabled: boolean + isActive: boolean +} + +export interface Instrumentation { + isActive: boolean + modules: { [key: string]: InstrumentationModule } + errors: { [key: string]: string[]} +} + export class StatusApi { @@ -91,4 +103,26 @@ export class StatusApi { return metricRegistry }) } + + public static instrumentationStatus(): Promise<Instrumentation> { + return axios.get('/status/instrumentation').then(response => { + const instrumentation: Instrumentation = { + isActive: response.data.isActive as boolean, + modules: {}, + errors: {} + } + + const rawModules = response.data.modules + Object.keys(rawModules).forEach(key => { + instrumentation.modules[key] = JSON.parse(rawModules[key]) + }) + + const rawErrors = response.data.errors + Object.keys(rawErrors).forEach(key => { + instrumentation.errors[key] = JSON.parse(rawErrors[key]) + }) + + return instrumentation + }) + } } |