5 Commits

Author SHA1 Message Date
naomi f0481af558 release: v1.1.0-hotfix
Node.js CI / Lint and Test (push) Successful in 31s
2025-10-07 16:41:10 -07:00
naomi 6f4f06d143 chore: remove sonar workflow
Node.js CI / Lint and Test (push) Successful in 28s
2025-10-07 16:11:56 -07:00
naomi c997e83aa5 release: v1.1.0
Code Analysis / SonarQube (push) Failing after 18s
Node.js CI / Lint and Test (push) Successful in 35s
2025-10-07 16:09:40 -07:00
naomi f2f5d9b1b4 feat: add method for sending metrics 2025-10-07 16:09:20 -07:00
naomi b65f3a4d6d chore: add sonar workflow
Node.js CI / Lint and Test (push) Successful in 45s
Code Analysis / SonarQube (push) Successful in 1m1s
2025-02-26 13:30:09 -08:00
2 changed files with 31 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@nhcarrigan/logger", "name": "@nhcarrigan/logger",
"version": "1.0.0", "version": "1.1.0-hotfix",
"description": "Our custom logging package, which pipes logs to our alerts server.", "description": "Our custom logging package, which pipes logs to our alerts server.",
"type": "module", "type": "module",
"main": "prod/index.js", "main": "prod/index.js",
+30
View File
@@ -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",
});
}
} }