diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2019-01-31 22:59:18 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2019-01-31 22:59:18 +0100 |
commit | ff8b915260e90084179dcb1d8b0b7b5f62b98470 (patch) | |
tree | 612de8f038d3bfb4d1a7fe0d4f41669420fa0f7e /kamon-status/src/api/StatusApi.ts | |
parent | 1db3f5c9c984dabbad7400c0c092942ff04580c0 (diff) | |
download | Kamon-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.ts | 40 |
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 |