aboutsummaryrefslogtreecommitdiff
path: root/kamon-status/src/api/StatusApi.ts
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2019-01-31 22:59:18 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2019-01-31 22:59:18 +0100
commitff8b915260e90084179dcb1d8b0b7b5f62b98470 (patch)
tree612de8f038d3bfb4d1a7fe0d4f41669420fa0f7e /kamon-status/src/api/StatusApi.ts
parent1db3f5c9c984dabbad7400c0c092942ff04580c0 (diff)
downloadKamon-ff8b915260e90084179dcb1d8b0b7b5f62b98470.tar.gz
Kamon-ff8b915260e90084179dcb1d8b0b7b5f62b98470.tar.bz2
Kamon-ff8b915260e90084179dcb1d8b0b7b5f62b98470.zip
show number of modules and metrics on the status page
Diffstat (limited to 'kamon-status/src/api/StatusApi.ts')
-rw-r--r--kamon-status/src/api/StatusApi.ts40
1 files changed, 35 insertions, 5 deletions
diff --git a/kamon-status/src/api/StatusApi.ts b/kamon-status/src/api/StatusApi.ts
index 540c1c53..7f18b2ed 100644
--- a/kamon-status/src/api/StatusApi.ts
+++ b/kamon-status/src/api/StatusApi.ts
@@ -7,35 +7,65 @@ export interface Environment {
tags: { [key: string]: string }
}
-export interface BaseInfo {
+export interface Config {
version: string
environment: Environment
config: any
}
+export enum ModuleKind {
+ Combined = "combined",
+ Metric = "metric",
+ Span = "span",
+ Plain = "plain",
+ Unknown = "unknown"
+}
+
export interface Module {
name: string
description: string
+ kind: ModuleKind
enabled: boolean
started: boolean
}
+export interface MetricInfo {
+ name: string
+ type: string
+ tags: { [key: string ]: string }
+}
+
export interface ModuleRegistryStatus {
modules: Array<Module>
}
+export interface MetricRegistryStatus {
+ metrics: Array<MetricInfo>
+}
+
export class StatusApi {
- public baseInfo(): Promise<BaseInfo> {
- return axios.get("/status/base-info").then(response => {
- return response.data as BaseInfo
+ public static configStatus(): Promise<Config> {
+ return axios.get("/status/config").then(response => {
+ const config = JSON.parse(response.data.config)
+ return {
+ version: response.data.version,
+ environment: response.data.environment,
+ config
+ }
})
}
- public moduleRegistryStatus(): Promise<ModuleRegistryStatus> {
+ public static moduleRegistryStatus(): Promise<ModuleRegistryStatus> {
return axios.get("/status/modules").then(response => {
return response.data as ModuleRegistryStatus
})
}
+
+ public static metricRegistryStatus(): Promise<MetricRegistryStatus> {
+ return axios.get("/status/metrics").then(response => {
+ return response.data as MetricRegistryStatus
+ })
+ }
} \ No newline at end of file