@abbacchio/transport 0.1.4 → 0.2.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.
package/dist/client.d.ts CHANGED
@@ -1,100 +1,147 @@
1
1
  export interface AbbacchioClientOptions {
2
- /** Server URL endpoint */
2
+ /** Base URL of the OTLP server (e.g. "http://localhost:4002"). Logs go to {endpoint}/v1/logs */
3
+ endpoint?: string;
4
+ /** @deprecated Use `endpoint` instead. If set, used as the full URL for log ingestion. */
3
5
  url?: string;
4
- /** Secret key for encryption. If provided, logs will be encrypted before sending */
6
+ /** Secret key for encryption. If provided, payloads will be encrypted before sending */
5
7
  secretKey?: string;
6
- /** Channel/app name for multi-app support. Defaults to 'default' */
7
- channel?: string;
8
- /** Default namespace for all logs. Per-log namespace/name fields take precedence */
9
- namespace?: string;
10
- /** Number of logs to batch before sending. Defaults to 10 */
8
+ /** Service name maps to OTLP resource attribute `service.name`. Defaults to 'default' */
9
+ serviceName?: string;
10
+ /** Additional OTLP resource attributes */
11
+ resourceAttributes?: Record<string, string>;
12
+ /** Number of log records to batch before sending. Defaults to 10 */
11
13
  batchSize?: number;
12
14
  /** Interval in ms between flushes. Defaults to 1000 */
13
15
  interval?: number;
14
16
  /** Additional headers to send with requests */
15
17
  headers?: Record<string, string>;
16
- /** Whether to send logs to the server. Defaults to true */
18
+ /** Whether to send data to the server. Defaults to true */
17
19
  enabled?: boolean;
18
20
  }
19
21
  /**
20
- * Shared HTTP client for all Abbacchio transports.
21
- * Handles batching, encryption, and HTTP communication.
22
+ * A log entry in the format the transports produce before OTLP conversion.
23
+ */
24
+ export interface LogRecord {
25
+ level?: number;
26
+ msg?: string;
27
+ message?: string;
28
+ time?: number;
29
+ [key: string]: unknown;
30
+ }
31
+ /**
32
+ * A metric data point to send via OTLP.
33
+ */
34
+ export interface MetricRecord {
35
+ name: string;
36
+ description?: string;
37
+ unit?: string;
38
+ type: 'sum' | 'gauge';
39
+ value: number;
40
+ attributes?: Record<string, unknown>;
41
+ isMonotonic?: boolean;
42
+ }
43
+ /**
44
+ * A histogram data point to send via OTLP.
45
+ *
46
+ * Each record is a single observation. The client accumulates observations
47
+ * into OTLP Histogram data points (with explicit bucket boundaries) on flush.
48
+ */
49
+ export interface HistogramRecord {
50
+ name: string;
51
+ description?: string;
52
+ unit?: string;
53
+ /** The observed value (e.g. request duration in ms) */
54
+ value: number;
55
+ attributes?: Record<string, unknown>;
56
+ /**
57
+ * Explicit bucket boundaries. Defaults to a standard latency distribution:
58
+ * [5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 10000]
59
+ */
60
+ explicitBounds?: number[];
61
+ }
62
+ /**
63
+ * A trace span to send via OTLP.
64
+ */
65
+ export interface SpanRecord {
66
+ traceId: string;
67
+ spanId: string;
68
+ parentSpanId?: string;
69
+ name: string;
70
+ kind?: number;
71
+ startTimeUnixNano: string;
72
+ endTimeUnixNano: string;
73
+ attributes?: Record<string, unknown>;
74
+ status?: {
75
+ code: number;
76
+ message?: string;
77
+ };
78
+ }
79
+ /**
80
+ * OTLP-native HTTP client for Abbacchio.
81
+ * Sends logs to POST /v1/logs, metrics to POST /v1/metrics, traces to POST /v1/traces.
22
82
  */
23
83
  export declare class AbbacchioClient {
24
- private url;
84
+ private endpoint;
25
85
  private secretKey?;
26
- private channel?;
27
- private namespace?;
86
+ private serviceName;
87
+ private resourceAttributes;
28
88
  private batchSize;
29
89
  private interval;
30
90
  private headers;
31
91
  private enabled;
32
- private buffer;
33
- private timer;
92
+ private logBuffer;
93
+ private metricBuffer;
94
+ private histogramBuffer;
95
+ private spanBuffer;
96
+ private logTimer;
97
+ private metricTimer;
98
+ private histogramTimer;
99
+ private spanTimer;
34
100
  constructor(options?: AbbacchioClientOptions);
35
- /**
36
- * Change the channel dynamically after initialization
37
- */
38
- setChannel(channel: string | undefined): void;
39
- /**
40
- * Get the current channel
41
- */
42
- getChannel(): string | undefined;
43
- /**
44
- * Change the namespace dynamically after initialization
45
- */
46
- setNamespace(namespace: string | undefined): void;
47
- /**
48
- * Get the current namespace
49
- */
50
- getNamespace(): string | undefined;
51
- /**
52
- * Enable sending logs to the server
53
- */
101
+ /** Change the service name dynamically */
102
+ setServiceName(name: string): void;
103
+ /** Get the current service name */
104
+ getServiceName(): string;
105
+ /** Enable sending data to the server */
54
106
  enable(): void;
55
- /**
56
- * Disable sending logs to the server. Logs will be silently dropped.
57
- */
107
+ /** Disable sending data to the server. Data will be silently dropped. */
58
108
  disable(): void;
59
- /**
60
- * Check if the client is currently enabled
61
- */
109
+ /** Check if the client is currently enabled */
62
110
  isEnabled(): boolean;
63
- /**
64
- * Process a log entry: inject default namespace, then encrypt if needed
65
- */
66
- private processLog;
67
- /**
68
- * Add a log to the buffer and trigger send if needed
69
- */
70
- add(log: unknown): void;
71
- /**
72
- * Add multiple logs at once
73
- */
74
- addBatch(logs: unknown[]): void;
75
- /**
76
- * Send logs immediately without batching
77
- */
78
- send(logs: unknown[]): Promise<void>;
79
- /**
80
- * Schedule a send after the interval
81
- */
82
- private scheduleSend;
83
- /**
84
- * Flush the buffer and send to server
85
- */
111
+ /** Add a log record to the buffer */
112
+ add(log: LogRecord | unknown): void;
113
+ /** Add multiple log records at once */
114
+ addBatch(logs: (LogRecord | unknown)[]): void;
115
+ /** Send logs immediately without batching */
116
+ send(logs: (LogRecord | unknown)[]): Promise<void>;
117
+ private scheduleLogFlush;
118
+ flushLogs(): Promise<void>;
119
+ private sendLogs;
120
+ /** Add a metric data point to the buffer */
121
+ addMetric(metric: MetricRecord): void;
122
+ private scheduleMetricFlush;
123
+ flushMetrics(): Promise<void>;
124
+ private sendMetrics;
125
+ private static DEFAULT_BOUNDS;
126
+ /** Add a histogram observation to the buffer */
127
+ addHistogram(record: HistogramRecord): void;
128
+ private scheduleHistogramFlush;
129
+ flushHistograms(): Promise<void>;
130
+ private sendHistograms;
131
+ /** Add a trace span to the buffer */
132
+ addSpan(span: SpanRecord): void;
133
+ private scheduleSpanFlush;
134
+ flushSpans(): Promise<void>;
135
+ private sendSpans;
136
+ /** Flush all buffers and close the client */
86
137
  flush(): Promise<void>;
87
- /**
88
- * Send logs to the Abbacchio server
89
- */
90
- private sendToServer;
91
- /**
92
- * Close the client and flush any remaining logs
93
- */
138
+ /** Close the client and flush any remaining data */
94
139
  close(): Promise<void>;
140
+ private buildResourceAttributes;
141
+ private post;
95
142
  }
96
143
  /**
97
- * Create a new Abbacchio client instance
144
+ * Create a new Abbacchio OTLP client instance
98
145
  */
99
146
  export declare function createClient(options?: AbbacchioClientOptions): AbbacchioClient;
100
147
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAA8C;gBAE/C,OAAO,GAAE,sBAA2B;IAWhD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAI7C;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIjD;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAWvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAa/B;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;YACW,YAAY;IAiB1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe,CAE9E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}