@dipseth/opensearch-logs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.env.example +14 -0
  2. package/alerts/langfuse-usage.yaml +142 -0
  3. package/alerts/production-incidents.yaml +280 -0
  4. package/alerts/service-health.yaml +98 -0
  5. package/dashboards/langfuse-usage.yaml +57 -0
  6. package/dist/create-dashboards.d.ts +10 -0
  7. package/dist/create-dashboards.js +38 -0
  8. package/dist/create-dashboards.js.map +1 -0
  9. package/dist/interfaces/alert.interfaces.d.ts +323 -0
  10. package/dist/interfaces/alert.interfaces.js +6 -0
  11. package/dist/interfaces/alert.interfaces.js.map +1 -0
  12. package/dist/interfaces/dashboard-gen.interfaces.d.ts +33 -0
  13. package/dist/interfaces/dashboard-gen.interfaces.js +3 -0
  14. package/dist/interfaces/dashboard-gen.interfaces.js.map +1 -0
  15. package/dist/interfaces/interfaces.d.ts +312 -0
  16. package/dist/interfaces/interfaces.js +3 -0
  17. package/dist/interfaces/interfaces.js.map +1 -0
  18. package/dist/interfaces/playbook.interfaces.d.ts +140 -0
  19. package/dist/interfaces/playbook.interfaces.js +3 -0
  20. package/dist/interfaces/playbook.interfaces.js.map +1 -0
  21. package/dist/os-alert.d.ts +17 -0
  22. package/dist/os-alert.js +245 -0
  23. package/dist/os-alert.js.map +1 -0
  24. package/dist/os-dash.d.ts +9 -0
  25. package/dist/os-dash.js +53 -0
  26. package/dist/os-dash.js.map +1 -0
  27. package/dist/os-monitor.d.ts +12 -0
  28. package/dist/os-monitor.js +59 -0
  29. package/dist/os-monitor.js.map +1 -0
  30. package/dist/os-playbook.d.ts +9 -0
  31. package/dist/os-playbook.js +71 -0
  32. package/dist/os-playbook.js.map +1 -0
  33. package/dist/os-search.d.ts +11 -0
  34. package/dist/os-search.js +84 -0
  35. package/dist/os-search.js.map +1 -0
  36. package/dist/repositories/index.d.ts +1 -0
  37. package/dist/repositories/index.js +2 -0
  38. package/dist/repositories/index.js.map +1 -0
  39. package/dist/repositories/opensearch.repository.d.ts +51 -0
  40. package/dist/repositories/opensearch.repository.js +167 -0
  41. package/dist/repositories/opensearch.repository.js.map +1 -0
  42. package/dist/services/alert.service.d.ts +73 -0
  43. package/dist/services/alert.service.js +503 -0
  44. package/dist/services/alert.service.js.map +1 -0
  45. package/dist/services/dashboard-gen.service.d.ts +36 -0
  46. package/dist/services/dashboard-gen.service.js +162 -0
  47. package/dist/services/dashboard-gen.service.js.map +1 -0
  48. package/dist/services/dashboard.service.d.ts +33 -0
  49. package/dist/services/dashboard.service.js +428 -0
  50. package/dist/services/dashboard.service.js.map +1 -0
  51. package/dist/services/gchat.service.d.ts +45 -0
  52. package/dist/services/gchat.service.js +228 -0
  53. package/dist/services/gchat.service.js.map +1 -0
  54. package/dist/services/index.d.ts +8 -0
  55. package/dist/services/index.js +9 -0
  56. package/dist/services/index.js.map +1 -0
  57. package/dist/services/monitor.service.d.ts +18 -0
  58. package/dist/services/monitor.service.js +342 -0
  59. package/dist/services/monitor.service.js.map +1 -0
  60. package/dist/services/panel-layout.d.ts +21 -0
  61. package/dist/services/panel-layout.js +33 -0
  62. package/dist/services/panel-layout.js.map +1 -0
  63. package/dist/services/playbook-dashboard.service.d.ts +19 -0
  64. package/dist/services/playbook-dashboard.service.js +434 -0
  65. package/dist/services/playbook-dashboard.service.js.map +1 -0
  66. package/dist/services/playbook.service.d.ts +13 -0
  67. package/dist/services/playbook.service.js +621 -0
  68. package/dist/services/playbook.service.js.map +1 -0
  69. package/dist/services/search.service.d.ts +30 -0
  70. package/dist/services/search.service.js +885 -0
  71. package/dist/services/search.service.js.map +1 -0
  72. package/dist/utils/cli.d.ts +14 -0
  73. package/dist/utils/cli.js +90 -0
  74. package/dist/utils/cli.js.map +1 -0
  75. package/dist/utils/config.d.ts +20 -0
  76. package/dist/utils/config.js +104 -0
  77. package/dist/utils/config.js.map +1 -0
  78. package/dist/utils/index.d.ts +5 -0
  79. package/dist/utils/index.js +5 -0
  80. package/dist/utils/index.js.map +1 -0
  81. package/dist/utils/service-registry.d.ts +15 -0
  82. package/dist/utils/service-registry.js +56 -0
  83. package/dist/utils/service-registry.js.map +1 -0
  84. package/dist/utils/template.d.ts +18 -0
  85. package/dist/utils/template.js +66 -0
  86. package/dist/utils/template.js.map +1 -0
  87. package/package.json +76 -0
  88. package/playbooks/error-investigation.yaml +45 -0
  89. package/playbooks/incident-triage.yaml +32 -0
  90. package/playbooks/post-deploy-validation.yaml +24 -0
  91. package/playbooks/service-deep-dive.yaml +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.service.js","sourceRoot":"","sources":["../../src/services/dashboard.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Google Chat webhook service — parse webhook URLs into OSD custom_webhook
3
+ * format and send test/report Card v2 messages.
4
+ */
5
+ import type { OsdDestinationPayload, GChatMessage, HealthReport } from "../interfaces/alert.interfaces.js";
6
+ export interface ParsedWebhook {
7
+ scheme: string;
8
+ host: string;
9
+ port: number;
10
+ path: string;
11
+ queryParams: Record<string, string>;
12
+ }
13
+ export declare class GChatService {
14
+ /**
15
+ * Parse a Google Chat webhook URL into components for OSD custom_webhook.
16
+ * Input: https://chat.googleapis.com/v1/spaces/SPACE/messages?key=K&token=T
17
+ */
18
+ static parseWebhookUrl(url: string): ParsedWebhook;
19
+ /**
20
+ * Build an OSD destination payload from a webhook URL.
21
+ */
22
+ static buildDestinationPayload(name: string, webhookUrl: string): OsdDestinationPayload;
23
+ /**
24
+ * Build a test Card v2 payload to verify webhook delivery.
25
+ */
26
+ static buildTestCard(profileName: string): GChatMessage;
27
+ /**
28
+ * Send a Card v2 message to a Google Chat webhook URL.
29
+ * Returns true if the message was delivered successfully.
30
+ */
31
+ static sendCard(webhookUrl: string, card: GChatMessage): Promise<boolean>;
32
+ /**
33
+ * Send a test card and return whether delivery succeeded.
34
+ */
35
+ static testWebhook(webhookUrl: string, profileName: string): Promise<boolean>;
36
+ /**
37
+ * Build a rich health report Card v2 from structured HealthReport data.
38
+ * This is the bespoke production dashboard card sent to Google Chat.
39
+ */
40
+ static buildHealthReportCard(report: HealthReport): GChatMessage;
41
+ /**
42
+ * Send a health report card and return whether delivery succeeded.
43
+ */
44
+ static sendHealthReport(webhookUrl: string, report: HealthReport): Promise<boolean>;
45
+ }
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Google Chat webhook service — parse webhook URLs into OSD custom_webhook
3
+ * format and send test/report Card v2 messages.
4
+ */
5
+ export class GChatService {
6
+ /**
7
+ * Parse a Google Chat webhook URL into components for OSD custom_webhook.
8
+ * Input: https://chat.googleapis.com/v1/spaces/SPACE/messages?key=K&token=T
9
+ */
10
+ static parseWebhookUrl(url) {
11
+ const parsed = new URL(url);
12
+ const queryParams = {};
13
+ parsed.searchParams.forEach((value, key) => {
14
+ queryParams[key] = value;
15
+ });
16
+ return {
17
+ scheme: parsed.protocol.replace(":", "").toUpperCase(),
18
+ host: parsed.hostname,
19
+ port: parsed.port ? Number(parsed.port) : (parsed.protocol === "https:" ? 443 : 80),
20
+ path: parsed.pathname,
21
+ queryParams,
22
+ };
23
+ }
24
+ /**
25
+ * Build an OSD destination payload from a webhook URL.
26
+ */
27
+ static buildDestinationPayload(name, webhookUrl) {
28
+ const parsed = this.parseWebhookUrl(webhookUrl);
29
+ return {
30
+ type: "custom_webhook",
31
+ name,
32
+ custom_webhook: {
33
+ scheme: parsed.scheme,
34
+ host: parsed.host,
35
+ port: parsed.port,
36
+ path: parsed.path,
37
+ query_params: parsed.queryParams,
38
+ header_params: { "Content-Type": "application/json" },
39
+ },
40
+ };
41
+ }
42
+ /**
43
+ * Build a test Card v2 payload to verify webhook delivery.
44
+ */
45
+ static buildTestCard(profileName) {
46
+ return {
47
+ cardsV2: [{
48
+ cardId: `test-${profileName}`,
49
+ card: {
50
+ header: {
51
+ title: "OpenSearch Alert Test",
52
+ subtitle: `Profile: ${profileName}`,
53
+ },
54
+ sections: [
55
+ {
56
+ widgets: [
57
+ decoratedText("Status", "Webhook connectivity verified"),
58
+ decoratedText("Profile", profileName),
59
+ decoratedText("Timestamp", new Date().toISOString()),
60
+ ],
61
+ },
62
+ ],
63
+ },
64
+ }],
65
+ };
66
+ }
67
+ /**
68
+ * Send a Card v2 message to a Google Chat webhook URL.
69
+ * Returns true if the message was delivered successfully.
70
+ */
71
+ static async sendCard(webhookUrl, card) {
72
+ try {
73
+ const resp = await fetch(webhookUrl, {
74
+ method: "POST",
75
+ headers: { "Content-Type": "application/json; charset=UTF-8" },
76
+ body: JSON.stringify(card),
77
+ signal: AbortSignal.timeout(15_000),
78
+ });
79
+ return resp.ok;
80
+ }
81
+ catch {
82
+ return false;
83
+ }
84
+ }
85
+ /**
86
+ * Send a test card and return whether delivery succeeded.
87
+ */
88
+ static async testWebhook(webhookUrl, profileName) {
89
+ const card = this.buildTestCard(profileName);
90
+ return this.sendCard(webhookUrl, card);
91
+ }
92
+ /**
93
+ * Build a rich health report Card v2 from structured HealthReport data.
94
+ * This is the bespoke production dashboard card sent to Google Chat.
95
+ */
96
+ static buildHealthReportCard(report) {
97
+ const periodStart = report.periodStart.slice(0, 16).replace("T", " ") + " UTC";
98
+ const periodEnd = report.periodEnd.slice(0, 16).replace("T", " ") + " UTC";
99
+ const statusIcon = report.status === "HEALTHY"
100
+ ? "\u2705"
101
+ : report.status === "WARNING"
102
+ ? "\u26a0\ufe0f"
103
+ : "\ud83d\udea8";
104
+ const headerTitle = `${statusIcon} Production Health: ${report.status}`;
105
+ const headerSubtitle = `${report.env} | ${periodStart} \u2014 ${periodEnd}`;
106
+ const sections = [];
107
+ // ── Overview section ──────────────────────────────────────────────
108
+ const overviewWidgets = [
109
+ decoratedText("Total Log Entries", report.totalLogs.toLocaleString()),
110
+ decoratedText("Total Errors", report.totalErrors.toLocaleString()),
111
+ ];
112
+ if (report.errorTrend.length >= 2) {
113
+ const first = report.errorTrend[0].count;
114
+ const last = report.errorTrend[report.errorTrend.length - 1].count;
115
+ if (first > 0 && last > 0) {
116
+ const ratio = last / first;
117
+ const arrow = ratio > 1.5 ? "\u2191" : ratio < 0.5 ? "\u2193" : "\u2192";
118
+ overviewWidgets.push(decoratedText("Error Trend", `${arrow} ${first.toLocaleString()} \u2192 ${last.toLocaleString()} per hour`));
119
+ }
120
+ }
121
+ sections.push({ header: "Overview", widgets: overviewWidgets });
122
+ // ── Service errors section ────────────────────────────────────────
123
+ if (report.serviceErrors.length > 0) {
124
+ const svcWidgets = report.serviceErrors
125
+ .slice(0, 5)
126
+ .map(s => decoratedText(s.service, `${s.count.toLocaleString()} errors \u2014 ${s.description}`));
127
+ if (report.serviceErrors.length > 5) {
128
+ svcWidgets.push(decoratedText("Others", `+${report.serviceErrors.length - 5} more services with errors`));
129
+ }
130
+ sections.push({ header: "Top Error Services", widgets: svcWidgets });
131
+ }
132
+ // ── Active patterns section ──────────────────────────────────────
133
+ if (report.patterns.length > 0) {
134
+ const patWidgets = report.patterns
135
+ .slice(0, 6)
136
+ .map(p => decoratedText(p.name, `${p.count.toLocaleString()} occurrences`));
137
+ sections.push({ header: "Active Incident Patterns", widgets: patWidgets });
138
+ }
139
+ // ── Latency section ──────────────────────────────────────────────
140
+ if (report.latency) {
141
+ const latencyColumns = {
142
+ columns: {
143
+ columnItems: [
144
+ {
145
+ horizontalSizeStyle: "FILL_AVAILABLE_SPACE",
146
+ horizontalAlignment: "START",
147
+ verticalAlignment: "CENTER",
148
+ widgets: [
149
+ decoratedText("P50", `${report.latency.p50.toLocaleString()} ms`),
150
+ decoratedText("P95", `${report.latency.p95.toLocaleString()} ms`),
151
+ ],
152
+ },
153
+ {
154
+ horizontalSizeStyle: "FILL_AVAILABLE_SPACE",
155
+ horizontalAlignment: "START",
156
+ verticalAlignment: "CENTER",
157
+ widgets: [
158
+ decoratedText("Avg", `${report.latency.avg.toLocaleString()} ms`),
159
+ decoratedText("P99", `${report.latency.p99.toLocaleString()} ms`),
160
+ ],
161
+ },
162
+ ],
163
+ },
164
+ };
165
+ sections.push({
166
+ header: `Latency (${report.latency.tracked.toLocaleString()} requests tracked)`,
167
+ widgets: [latencyColumns],
168
+ });
169
+ }
170
+ // ── Recent errors section ────────────────────────────────────────
171
+ if (report.recentErrors.length > 0) {
172
+ const errWidgets = report.recentErrors
173
+ .slice(0, 3)
174
+ .map(e => ({
175
+ decoratedText: {
176
+ topLabel: `${e.service} @ ${e.timestamp.slice(11, 19)}`,
177
+ text: e.message.slice(0, 150),
178
+ wrapText: true,
179
+ },
180
+ }));
181
+ sections.push({ header: "Recent Errors", widgets: errWidgets });
182
+ }
183
+ // ── Action buttons ───────────────────────────────────────────────
184
+ const buttonSection = {
185
+ widgets: [{
186
+ buttonList: {
187
+ buttons: [
188
+ {
189
+ text: "View Dashboard",
190
+ onClick: { openLink: { url: report.dashboardUrl } },
191
+ color: { red: 0, green: 0, blue: 0.8, alpha: 1 },
192
+ },
193
+ {
194
+ text: "View in Discover",
195
+ onClick: { openLink: { url: report.discoverUrl } },
196
+ },
197
+ ],
198
+ },
199
+ }],
200
+ };
201
+ sections.push(buttonSection);
202
+ const card = {
203
+ cardId: `health-report-${report.env}`,
204
+ card: {
205
+ header: {
206
+ title: headerTitle,
207
+ subtitle: headerSubtitle,
208
+ imageUrl: "https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/monitoring/default/48px.svg",
209
+ imageType: "CIRCLE",
210
+ },
211
+ sections,
212
+ },
213
+ };
214
+ return { cardsV2: [card] };
215
+ }
216
+ /**
217
+ * Send a health report card and return whether delivery succeeded.
218
+ */
219
+ static async sendHealthReport(webhookUrl, report) {
220
+ const card = this.buildHealthReportCard(report);
221
+ return this.sendCard(webhookUrl, card);
222
+ }
223
+ }
224
+ // ── Widget Helpers ──────────────────────────────────────────────────────
225
+ function decoratedText(topLabel, text) {
226
+ return { decoratedText: { topLabel, text } };
227
+ }
228
+ //# sourceMappingURL=gchat.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gchat.service.js","sourceRoot":"","sources":["../../src/services/gchat.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { SearchService } from "./search.service.js";
2
+ export { MonitorService } from "./monitor.service.js";
3
+ export { DashboardService } from "./dashboard.service.js";
4
+ export { PlaybookDashboardService } from "./playbook-dashboard.service.js";
5
+ export { loadPlaybook, runPlaybook, renderResults } from "./playbook.service.js";
6
+ export { AlertService } from "./alert.service.js";
7
+ export { GChatService } from "./gchat.service.js";
8
+ export { DashboardGenService } from "./dashboard-gen.service.js";
@@ -0,0 +1,9 @@
1
+ export { SearchService } from "./search.service.js";
2
+ export { MonitorService } from "./monitor.service.js";
3
+ export { DashboardService } from "./dashboard.service.js";
4
+ export { PlaybookDashboardService } from "./playbook-dashboard.service.js";
5
+ export { loadPlaybook, runPlaybook, renderResults } from "./playbook.service.js";
6
+ export { AlertService } from "./alert.service.js";
7
+ export { GChatService } from "./gchat.service.js";
8
+ export { DashboardGenService } from "./dashboard-gen.service.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Monitor service — post-deploy validation and incident watch dashboards.
3
+ *
4
+ * Modes: post-deploy, incident-watch, spotlight, compare
5
+ */
6
+ import type { OpenSearchRepository } from "../repositories/index.js";
7
+ import type { MonitorArgs } from "../interfaces/interfaces.js";
8
+ export declare class MonitorService {
9
+ private repo;
10
+ constructor(repo: OpenSearchRepository);
11
+ private countPatterns;
12
+ private getRecentLogs;
13
+ private fmtDelta;
14
+ modePostDeploy(args: MonitorArgs): Promise<void>;
15
+ modeIncidentWatch(args: MonitorArgs): Promise<void>;
16
+ modeSpotlight(args: MonitorArgs): Promise<void>;
17
+ modeCompare(args: MonitorArgs): Promise<void>;
18
+ }