generated from nhcarrigan/template
feat: add method for sending metrics
This commit is contained in:
@@ -71,4 +71,34 @@ export class Logger {
|
|||||||
method: "POST",
|
method: "POST",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a counter metric to the alerting service.
|
||||||
|
* The alerting service is configured to handle aggregation, so you can send
|
||||||
|
* summative counts or individual increments. (e.g. Send a count of all users, or send a count of 1 every time a user joins).
|
||||||
|
* @param name -- The name of the metric to track.
|
||||||
|
* @param value -- The value of the metric to insert.
|
||||||
|
* @param metadata -- Any metadata to attach to the metric.
|
||||||
|
*/
|
||||||
|
public async metric(
|
||||||
|
name: string,
|
||||||
|
value: number,
|
||||||
|
metadata: Record<string, string | number | boolean>,
|
||||||
|
): Promise<void> {
|
||||||
|
await fetch(`${this.url}/metric`, {
|
||||||
|
body: JSON.stringify({
|
||||||
|
application: this.application,
|
||||||
|
metadata: metadata,
|
||||||
|
name: name,
|
||||||
|
value: value,
|
||||||
|
}),
|
||||||
|
headers: {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/naming-convention -- Standard header name.
|
||||||
|
"Authorization": this.token,
|
||||||
|
// eslint-disable-next-line @typescript-eslint/naming-convention -- Standard header name.
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
method: "POST",
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user