aboutsummaryrefslogtreecommitdiff
path: root/kamon-status/src/api/StatusApi.ts
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-status/src/api/StatusApi.ts')
-rw-r--r--kamon-status/src/api/StatusApi.ts34
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
+ })
+ }
}