@posthog/core 1.50.0 → 1.50.1
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -29
- package/dist/index.mjs +2 -1
- package/dist/logs/logs-utils.d.ts.map +1 -1
- package/dist/logs/logs-utils.js +2 -12
- package/dist/logs/logs-utils.mjs +2 -12
- package/dist/metrics/metrics-utils.d.ts.map +1 -1
- package/dist/metrics/metrics-utils.js +2 -12
- package/dist/metrics/metrics-utils.mjs +2 -12
- package/dist/utils/otlp-resource.d.ts +38 -0
- package/dist/utils/otlp-resource.d.ts.map +1 -0
- package/dist/utils/otlp-resource.js +81 -0
- package/dist/utils/otlp-resource.mjs +41 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/logs/logs-utils.ts +2 -8
- package/src/metrics/metrics-utils.ts +2 -8
- package/src/utils/otlp-resource.spec.ts +125 -0
- package/src/utils/otlp-resource.ts +89 -0
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './utils';
|
|
|
6
6
|
export * as ErrorTracking from './error-tracking';
|
|
7
7
|
export { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getOtlpSeverityNumber, getOtlpSeverityText, } from './logs/logs-utils';
|
|
8
8
|
export { toOtlpAnyValue, toOtlpKeyValueList } from './utils/otlp-any-value';
|
|
9
|
+
export { osResourceAttributes } from './utils/otlp-resource';
|
|
9
10
|
export { PostHogLogs } from './logs';
|
|
10
11
|
export type { BeforeSendLogFn, BufferedLogEntry, CaptureLogger, LogSdkContext, PostHogLogsConfig, ResolvedPostHogLogsConfig, } from './logs/types';
|
|
11
12
|
export type { CaptureLogOptions, LogAttributeValue, LogAttributes, LogSeverityLevel } from './logs/types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6CAA6C,EAC7C,iCAAiC,GAClC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAIrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAGhE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,OAAO,EACP,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6CAA6C,EAC7C,iCAAiC,GAClC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAIrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAGhE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,OAAO,EACP,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -45,6 +45,9 @@ var __webpack_modules__ = {
|
|
|
45
45
|
"./utils/otlp-any-value": function(module) {
|
|
46
46
|
module.exports = require("./utils/otlp-any-value.js");
|
|
47
47
|
},
|
|
48
|
+
"./utils/otlp-resource": function(module) {
|
|
49
|
+
module.exports = require("./utils/otlp-resource.js");
|
|
50
|
+
},
|
|
48
51
|
"./vendor/uuidv7": function(module) {
|
|
49
52
|
module.exports = require("./vendor/uuidv7.js");
|
|
50
53
|
}
|
|
@@ -93,16 +96,16 @@ var __webpack_exports__ = {};
|
|
|
93
96
|
(()=>{
|
|
94
97
|
__webpack_require__.r(__webpack_exports__);
|
|
95
98
|
__webpack_require__.d(__webpack_exports__, {
|
|
96
|
-
DEFAULT_HISTOGRAM_BOUNDS: ()=>
|
|
99
|
+
DEFAULT_HISTOGRAM_BOUNDS: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.DEFAULT_HISTOGRAM_BOUNDS,
|
|
97
100
|
ErrorTracking: ()=>_error_tracking__WEBPACK_IMPORTED_MODULE_4__,
|
|
98
101
|
InconclusiveMatchError: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.InconclusiveMatchError,
|
|
99
102
|
MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES,
|
|
100
|
-
PostHogLogs: ()=>
|
|
101
|
-
PostHogMetrics: ()=>
|
|
102
|
-
buildMetricsResourceAttributes: ()=>
|
|
103
|
+
PostHogLogs: ()=>_logs__WEBPACK_IMPORTED_MODULE_8__.PostHogLogs,
|
|
104
|
+
PostHogMetrics: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.PostHogMetrics,
|
|
105
|
+
buildMetricsResourceAttributes: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.buildMetricsResourceAttributes,
|
|
103
106
|
buildOtlpLogRecord: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildOtlpLogRecord,
|
|
104
107
|
buildOtlpLogsPayload: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildOtlpLogsPayload,
|
|
105
|
-
buildOtlpMetricsPayload: ()=>
|
|
108
|
+
buildOtlpMetricsPayload: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.buildOtlpMetricsPayload,
|
|
106
109
|
buildResourceAttributes: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildResourceAttributes,
|
|
107
110
|
flagDetailsToResults: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.flagDetailsToResults,
|
|
108
111
|
getEnabledFromValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getEnabledFromValue,
|
|
@@ -110,11 +113,11 @@ var __webpack_exports__ = {};
|
|
|
110
113
|
getFeatureFlagValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getFeatureFlagValue,
|
|
111
114
|
getFeatureFlagVariant: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.getFeatureFlagVariant,
|
|
112
115
|
getFeatureFlagVariantLookupTable: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.getFeatureFlagVariantLookupTable,
|
|
113
|
-
getLengthFromRules: ()=>
|
|
116
|
+
getLengthFromRules: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getLengthFromRules,
|
|
114
117
|
getOtlpSeverityNumber: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.getOtlpSeverityNumber,
|
|
115
118
|
getOtlpSeverityText: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.getOtlpSeverityText,
|
|
116
|
-
getRequirementsHint: ()=>
|
|
117
|
-
getValidationError: ()=>
|
|
119
|
+
getRequirementsHint: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getRequirementsHint,
|
|
120
|
+
getValidationError: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getValidationError,
|
|
118
121
|
getVariantFromValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getVariantFromValue,
|
|
119
122
|
gzipCompress: ()=>_gzip__WEBPACK_IMPORTED_MODULE_2__.gzipCompress,
|
|
120
123
|
hashSHA1: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.hashSHA1,
|
|
@@ -125,14 +128,15 @@ var __webpack_exports__ = {};
|
|
|
125
128
|
isNativeAsyncGzipReadError: ()=>_gzip__WEBPACK_IMPORTED_MODULE_2__.isNativeAsyncGzipReadError,
|
|
126
129
|
matchFeatureFlagProperty: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.matchFeatureFlagProperty,
|
|
127
130
|
minimizeFlagCalledEventProperties: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.minimizeFlagCalledEventProperties,
|
|
131
|
+
osResourceAttributes: ()=>_utils_otlp_resource__WEBPACK_IMPORTED_MODULE_7__.osResourceAttributes,
|
|
128
132
|
parseFeatureFlagSemver: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.parseFeatureFlagSemver,
|
|
129
133
|
parsePayload: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.parsePayload,
|
|
130
134
|
relativeDateParseForFeatureFlagMatching: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.relativeDateParseForFeatureFlagMatching,
|
|
131
135
|
resolveFeatureFlagPayload: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.resolveFeatureFlagPayload,
|
|
132
|
-
resolveMetricsConfig: ()=>
|
|
136
|
+
resolveMetricsConfig: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.resolveMetricsConfig,
|
|
133
137
|
toOtlpAnyValue: ()=>_utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__.toOtlpAnyValue,
|
|
134
138
|
toOtlpKeyValueList: ()=>_utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__.toOtlpKeyValueList,
|
|
135
|
-
uuidv7: ()=>
|
|
139
|
+
uuidv7: ()=>_vendor_uuidv7__WEBPACK_IMPORTED_MODULE_10__.uuidv7
|
|
136
140
|
});
|
|
137
141
|
var _featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./featureFlagUtils");
|
|
138
142
|
var _featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./featureFlagLocalEvaluation");
|
|
@@ -141,6 +145,7 @@ var __webpack_exports__ = {};
|
|
|
141
145
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
142
146
|
for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_3__)if ([
|
|
143
147
|
"toOtlpKeyValueList",
|
|
148
|
+
"osResourceAttributes",
|
|
144
149
|
"relativeDateParseForFeatureFlagMatching",
|
|
145
150
|
"isNativeAsyncGzipError",
|
|
146
151
|
"getOtlpSeverityText",
|
|
@@ -188,13 +193,15 @@ var __webpack_exports__ = {};
|
|
|
188
193
|
var _error_tracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./error-tracking");
|
|
189
194
|
var _logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./logs/logs-utils");
|
|
190
195
|
var _utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./utils/otlp-any-value");
|
|
191
|
-
var
|
|
192
|
-
var
|
|
193
|
-
var
|
|
194
|
-
var
|
|
196
|
+
var _utils_otlp_resource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./utils/otlp-resource");
|
|
197
|
+
var _logs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./logs");
|
|
198
|
+
var _metrics__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./metrics");
|
|
199
|
+
var _vendor_uuidv7__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./vendor/uuidv7");
|
|
200
|
+
var _cookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./cookie");
|
|
195
201
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
196
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
202
|
+
for(var __WEBPACK_IMPORT_KEY__ in _cookie__WEBPACK_IMPORTED_MODULE_11__)if ([
|
|
197
203
|
"toOtlpKeyValueList",
|
|
204
|
+
"osResourceAttributes",
|
|
198
205
|
"relativeDateParseForFeatureFlagMatching",
|
|
199
206
|
"isNativeAsyncGzipError",
|
|
200
207
|
"getOtlpSeverityText",
|
|
@@ -236,13 +243,14 @@ var __webpack_exports__ = {};
|
|
|
236
243
|
"buildOtlpLogRecord",
|
|
237
244
|
"getFeatureFlagVariant"
|
|
238
245
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
239
|
-
return
|
|
246
|
+
return _cookie__WEBPACK_IMPORTED_MODULE_11__[key];
|
|
240
247
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
241
248
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
242
|
-
var
|
|
249
|
+
var _posthog_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./posthog-core");
|
|
243
250
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
244
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
251
|
+
for(var __WEBPACK_IMPORT_KEY__ in _posthog_core__WEBPACK_IMPORTED_MODULE_12__)if ([
|
|
245
252
|
"toOtlpKeyValueList",
|
|
253
|
+
"osResourceAttributes",
|
|
246
254
|
"relativeDateParseForFeatureFlagMatching",
|
|
247
255
|
"isNativeAsyncGzipError",
|
|
248
256
|
"getOtlpSeverityText",
|
|
@@ -284,13 +292,14 @@ var __webpack_exports__ = {};
|
|
|
284
292
|
"buildOtlpLogRecord",
|
|
285
293
|
"getFeatureFlagVariant"
|
|
286
294
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
287
|
-
return
|
|
295
|
+
return _posthog_core__WEBPACK_IMPORTED_MODULE_12__[key];
|
|
288
296
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
289
297
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
290
|
-
var
|
|
298
|
+
var _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./posthog-core-stateless");
|
|
291
299
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
292
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
300
|
+
for(var __WEBPACK_IMPORT_KEY__ in _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__)if ([
|
|
293
301
|
"toOtlpKeyValueList",
|
|
302
|
+
"osResourceAttributes",
|
|
294
303
|
"relativeDateParseForFeatureFlagMatching",
|
|
295
304
|
"isNativeAsyncGzipError",
|
|
296
305
|
"getOtlpSeverityText",
|
|
@@ -332,13 +341,14 @@ var __webpack_exports__ = {};
|
|
|
332
341
|
"buildOtlpLogRecord",
|
|
333
342
|
"getFeatureFlagVariant"
|
|
334
343
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
335
|
-
return
|
|
344
|
+
return _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__[key];
|
|
336
345
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
337
346
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
338
|
-
var
|
|
347
|
+
var _tracing_headers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./tracing-headers");
|
|
339
348
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
340
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
349
|
+
for(var __WEBPACK_IMPORT_KEY__ in _tracing_headers__WEBPACK_IMPORTED_MODULE_14__)if ([
|
|
341
350
|
"toOtlpKeyValueList",
|
|
351
|
+
"osResourceAttributes",
|
|
342
352
|
"relativeDateParseForFeatureFlagMatching",
|
|
343
353
|
"isNativeAsyncGzipError",
|
|
344
354
|
"getOtlpSeverityText",
|
|
@@ -380,13 +390,14 @@ var __webpack_exports__ = {};
|
|
|
380
390
|
"buildOtlpLogRecord",
|
|
381
391
|
"getFeatureFlagVariant"
|
|
382
392
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
383
|
-
return
|
|
393
|
+
return _tracing_headers__WEBPACK_IMPORTED_MODULE_14__[key];
|
|
384
394
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
385
395
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
386
|
-
var
|
|
396
|
+
var _types__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./types");
|
|
387
397
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
388
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
398
|
+
for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_15__)if ([
|
|
389
399
|
"toOtlpKeyValueList",
|
|
400
|
+
"osResourceAttributes",
|
|
390
401
|
"relativeDateParseForFeatureFlagMatching",
|
|
391
402
|
"isNativeAsyncGzipError",
|
|
392
403
|
"getOtlpSeverityText",
|
|
@@ -428,10 +439,10 @@ var __webpack_exports__ = {};
|
|
|
428
439
|
"buildOtlpLogRecord",
|
|
429
440
|
"getFeatureFlagVariant"
|
|
430
441
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
431
|
-
return
|
|
442
|
+
return _types__WEBPACK_IMPORTED_MODULE_15__[key];
|
|
432
443
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
433
444
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
434
|
-
var
|
|
445
|
+
var _surveys_validation__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./surveys/validation");
|
|
435
446
|
})();
|
|
436
447
|
exports.DEFAULT_HISTOGRAM_BOUNDS = __webpack_exports__.DEFAULT_HISTOGRAM_BOUNDS;
|
|
437
448
|
exports.ErrorTracking = __webpack_exports__.ErrorTracking;
|
|
@@ -465,6 +476,7 @@ exports.isNativeAsyncGzipError = __webpack_exports__.isNativeAsyncGzipError;
|
|
|
465
476
|
exports.isNativeAsyncGzipReadError = __webpack_exports__.isNativeAsyncGzipReadError;
|
|
466
477
|
exports.matchFeatureFlagProperty = __webpack_exports__.matchFeatureFlagProperty;
|
|
467
478
|
exports.minimizeFlagCalledEventProperties = __webpack_exports__.minimizeFlagCalledEventProperties;
|
|
479
|
+
exports.osResourceAttributes = __webpack_exports__.osResourceAttributes;
|
|
468
480
|
exports.parseFeatureFlagSemver = __webpack_exports__.parseFeatureFlagSemver;
|
|
469
481
|
exports.parsePayload = __webpack_exports__.parsePayload;
|
|
470
482
|
exports.relativeDateParseForFeatureFlagMatching = __webpack_exports__.relativeDateParseForFeatureFlagMatching;
|
|
@@ -506,6 +518,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
506
518
|
"isNativeAsyncGzipReadError",
|
|
507
519
|
"matchFeatureFlagProperty",
|
|
508
520
|
"minimizeFlagCalledEventProperties",
|
|
521
|
+
"osResourceAttributes",
|
|
509
522
|
"parseFeatureFlagSemver",
|
|
510
523
|
"parsePayload",
|
|
511
524
|
"relativeDateParseForFeatureFlagMatching",
|
package/dist/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { InconclusiveMatchError, getFeatureFlagHash, getFeatureFlagVariant, getF
|
|
|
3
3
|
import { gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError } from "./gzip.mjs";
|
|
4
4
|
import { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getOtlpSeverityNumber, getOtlpSeverityText } from "./logs/logs-utils.mjs";
|
|
5
5
|
import { toOtlpAnyValue, toOtlpKeyValueList } from "./utils/otlp-any-value.mjs";
|
|
6
|
+
import { osResourceAttributes } from "./utils/otlp-resource.mjs";
|
|
6
7
|
import { PostHogLogs } from "./logs/index.mjs";
|
|
7
8
|
import { DEFAULT_HISTOGRAM_BOUNDS, PostHogMetrics, buildMetricsResourceAttributes, buildOtlpMetricsPayload, resolveMetricsConfig } from "./metrics/index.mjs";
|
|
8
9
|
import { uuidv7 } from "./vendor/uuidv7.mjs";
|
|
@@ -14,4 +15,4 @@ export * from "./posthog-core-stateless.mjs";
|
|
|
14
15
|
export * from "./tracing-headers.mjs";
|
|
15
16
|
export * from "./types.mjs";
|
|
16
17
|
import * as __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ from "./error-tracking/index.mjs";
|
|
17
|
-
export { DEFAULT_HISTOGRAM_BOUNDS, __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, InconclusiveMatchError, MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES, PostHogLogs, PostHogMetrics, buildMetricsResourceAttributes, buildOtlpLogRecord, buildOtlpLogsPayload, buildOtlpMetricsPayload, buildResourceAttributes, flagDetailsToResults, getEnabledFromValue, getFeatureFlagHash, getFeatureFlagValue, getFeatureFlagVariant, getFeatureFlagVariantLookupTable, getLengthFromRules, getOtlpSeverityNumber, getOtlpSeverityText, getRequirementsHint, getValidationError, getVariantFromValue, gzipCompress, hashSHA1, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, matchFeatureFlagProperty, minimizeFlagCalledEventProperties, parseFeatureFlagSemver, parsePayload, relativeDateParseForFeatureFlagMatching, resolveFeatureFlagPayload, resolveMetricsConfig, toOtlpAnyValue, toOtlpKeyValueList, uuidv7 };
|
|
18
|
+
export { DEFAULT_HISTOGRAM_BOUNDS, __WEBPACK_EXTERNAL_MODULE__error_tracking_index_mjs_b3406d6f__ as ErrorTracking, InconclusiveMatchError, MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES, PostHogLogs, PostHogMetrics, buildMetricsResourceAttributes, buildOtlpLogRecord, buildOtlpLogsPayload, buildOtlpMetricsPayload, buildResourceAttributes, flagDetailsToResults, getEnabledFromValue, getFeatureFlagHash, getFeatureFlagValue, getFeatureFlagVariant, getFeatureFlagVariantLookupTable, getLengthFromRules, getOtlpSeverityNumber, getOtlpSeverityText, getRequirementsHint, getValidationError, getVariantFromValue, gzipCompress, hashSHA1, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, matchFeatureFlagProperty, minimizeFlagCalledEventProperties, osResourceAttributes, parseFeatureFlagSemver, parsePayload, relativeDateParseForFeatureFlagMatching, resolveFeatureFlagPayload, resolveMetricsConfig, toOtlpAnyValue, toOtlpKeyValueList, uuidv7 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs-utils.d.ts","sourceRoot":"","sources":["../../src/logs/logs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAEf,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"logs-utils.d.ts","sourceRoot":"","sources":["../../src/logs/logs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EAEf,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAqBvE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAE7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAErE;AA0CD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,aAAa,EACzB,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,aAAa,CA+Ef;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,yBAAyB,EACjC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEnC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EAAE,EAC3B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACrD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,eAAe,CAcjB"}
|
package/dist/logs/logs-utils.js
CHANGED
|
@@ -33,6 +33,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
33
33
|
const index_js_namespaceObject = require("../utils/index.js");
|
|
34
34
|
const json_utils_js_namespaceObject = require("../utils/json-utils.js");
|
|
35
35
|
const otlp_any_value_js_namespaceObject = require("../utils/otlp-any-value.js");
|
|
36
|
+
const otlp_resource_js_namespaceObject = require("../utils/otlp-resource.js");
|
|
36
37
|
const OTLP_SEVERITY_MAP = {
|
|
37
38
|
trace: {
|
|
38
39
|
text: 'TRACE',
|
|
@@ -132,18 +133,7 @@ function buildOtlpLogRecord(options, sdkContext, logger, occurredAtMs) {
|
|
|
132
133
|
return record;
|
|
133
134
|
}
|
|
134
135
|
function buildResourceAttributes(config, sdkName, sdkVersion) {
|
|
135
|
-
return
|
|
136
|
-
...config.resourceAttributes,
|
|
137
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
138
|
-
...config.environment && {
|
|
139
|
-
'deployment.environment': config.environment
|
|
140
|
-
},
|
|
141
|
-
...config.serviceVersion && {
|
|
142
|
-
'service.version': config.serviceVersion
|
|
143
|
-
},
|
|
144
|
-
'telemetry.sdk.name': sdkName,
|
|
145
|
-
'telemetry.sdk.version': sdkVersion
|
|
146
|
-
};
|
|
136
|
+
return (0, otlp_resource_js_namespaceObject.buildOtlpResourceAttributes)(config, sdkName, sdkVersion);
|
|
147
137
|
}
|
|
148
138
|
function buildOtlpLogsPayload(logRecords, resourceAttributes, scopeName, scopeVersion) {
|
|
149
139
|
return {
|
package/dist/logs/logs-utils.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isNullish, isNumber, isUndefined } from "../utils/index.mjs";
|
|
2
2
|
import { UNSERIALIZABLE_VALUE, sanitizeString } from "../utils/json-utils.mjs";
|
|
3
3
|
import { toOtlpKeyValueList } from "../utils/otlp-any-value.mjs";
|
|
4
|
+
import { buildOtlpResourceAttributes } from "../utils/otlp-resource.mjs";
|
|
4
5
|
const OTLP_SEVERITY_MAP = {
|
|
5
6
|
trace: {
|
|
6
7
|
text: 'TRACE',
|
|
@@ -100,18 +101,7 @@ function buildOtlpLogRecord(options, sdkContext, logger, occurredAtMs) {
|
|
|
100
101
|
return record;
|
|
101
102
|
}
|
|
102
103
|
function buildResourceAttributes(config, sdkName, sdkVersion) {
|
|
103
|
-
return
|
|
104
|
-
...config.resourceAttributes,
|
|
105
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
106
|
-
...config.environment && {
|
|
107
|
-
'deployment.environment': config.environment
|
|
108
|
-
},
|
|
109
|
-
...config.serviceVersion && {
|
|
110
|
-
'service.version': config.serviceVersion
|
|
111
|
-
},
|
|
112
|
-
'telemetry.sdk.name': sdkName,
|
|
113
|
-
'telemetry.sdk.version': sdkVersion
|
|
114
|
-
};
|
|
104
|
+
return buildOtlpResourceAttributes(config, sdkName, sdkVersion);
|
|
115
105
|
}
|
|
116
106
|
function buildOtlpLogsPayload(logRecords, resourceAttributes, scopeName, scopeVersion) {
|
|
117
107
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-utils.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"metrics-utils.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAG1F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAE3D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAA4E,CAAA;AAEjH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,SAAS,GAC3D,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,4BAA4B,EACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAEtC;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EAAE,EACrB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACxD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,kBAAkB,CAcpB"}
|
|
@@ -32,6 +32,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
32
32
|
DEFAULT_HISTOGRAM_BOUNDS: ()=>DEFAULT_HISTOGRAM_BOUNDS
|
|
33
33
|
});
|
|
34
34
|
const otlp_any_value_js_namespaceObject = require("../utils/otlp-any-value.js");
|
|
35
|
+
const otlp_resource_js_namespaceObject = require("../utils/otlp-resource.js");
|
|
35
36
|
const DEFAULT_HISTOGRAM_BOUNDS = [
|
|
36
37
|
0,
|
|
37
38
|
5,
|
|
@@ -65,18 +66,7 @@ function bucketIndexFor(value, bounds) {
|
|
|
65
66
|
return bounds.length;
|
|
66
67
|
}
|
|
67
68
|
function buildMetricsResourceAttributes(config, scopeName, scopeVersion) {
|
|
68
|
-
return
|
|
69
|
-
...config.resourceAttributes,
|
|
70
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
71
|
-
...config.environment && {
|
|
72
|
-
'deployment.environment': config.environment
|
|
73
|
-
},
|
|
74
|
-
...config.serviceVersion && {
|
|
75
|
-
'service.version': config.serviceVersion
|
|
76
|
-
},
|
|
77
|
-
'telemetry.sdk.name': scopeName,
|
|
78
|
-
'telemetry.sdk.version': scopeVersion
|
|
79
|
-
};
|
|
69
|
+
return (0, otlp_resource_js_namespaceObject.buildOtlpResourceAttributes)(config, scopeName, scopeVersion);
|
|
80
70
|
}
|
|
81
71
|
function buildOtlpMetricsPayload(metrics, resourceAttributes, scopeName, scopeVersion) {
|
|
82
72
|
return {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { toOtlpKeyValueList } from "../utils/otlp-any-value.mjs";
|
|
2
|
+
import { buildOtlpResourceAttributes } from "../utils/otlp-resource.mjs";
|
|
2
3
|
const DEFAULT_HISTOGRAM_BOUNDS = [
|
|
3
4
|
0,
|
|
4
5
|
5,
|
|
@@ -32,18 +33,7 @@ function bucketIndexFor(value, bounds) {
|
|
|
32
33
|
return bounds.length;
|
|
33
34
|
}
|
|
34
35
|
function buildMetricsResourceAttributes(config, scopeName, scopeVersion) {
|
|
35
|
-
return
|
|
36
|
-
...config.resourceAttributes,
|
|
37
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
38
|
-
...config.environment && {
|
|
39
|
-
'deployment.environment': config.environment
|
|
40
|
-
},
|
|
41
|
-
...config.serviceVersion && {
|
|
42
|
-
'service.version': config.serviceVersion
|
|
43
|
-
},
|
|
44
|
-
'telemetry.sdk.name': scopeName,
|
|
45
|
-
'telemetry.sdk.version': scopeVersion
|
|
46
|
-
};
|
|
36
|
+
return buildOtlpResourceAttributes(config, scopeName, scopeVersion);
|
|
47
37
|
}
|
|
48
38
|
function buildOtlpMetricsPayload(metrics, resourceAttributes, scopeName, scopeVersion) {
|
|
49
39
|
return {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shape the logs and metrics resolved configs share for resource
|
|
3
|
+
* attribution. Generic over the attribute value type so each signal keeps its
|
|
4
|
+
* own value union.
|
|
5
|
+
*/
|
|
6
|
+
export interface OtlpResourceConfig<TAttributeValue> {
|
|
7
|
+
serviceName?: string;
|
|
8
|
+
serviceVersion?: string;
|
|
9
|
+
environment?: string;
|
|
10
|
+
resourceAttributes?: Record<string, TAttributeValue>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* OTLP resource attributes shared by the logs and metrics envelopes.
|
|
14
|
+
*
|
|
15
|
+
* User `resourceAttributes` are spread first, then SDK-controlled keys on top so
|
|
16
|
+
* a stray user key can't clobber the ingestion-attribution ones; the dedicated
|
|
17
|
+
* `serviceName` / `environment` / `serviceVersion` fields are how you override
|
|
18
|
+
* those three.
|
|
19
|
+
*
|
|
20
|
+
* @internal Shared within this SDK; not part of the stable public API.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildOtlpResourceAttributes<TAttributeValue>(config: OtlpResourceConfig<TAttributeValue>, sdkName: string, sdkVersion: string): Record<string, TAttributeValue | string>;
|
|
23
|
+
/**
|
|
24
|
+
* Normalizes a natively-detected OS name against the table above.
|
|
25
|
+
* Unrecognized names pass through: a wrong-looking value beats dropping an OS
|
|
26
|
+
* we have not mapped yet.
|
|
27
|
+
*
|
|
28
|
+
* @internal Shared within this SDK; not part of the stable public API.
|
|
29
|
+
*/
|
|
30
|
+
export declare function normalizeOsName(name: string | undefined): string | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* The `os.name` / `os.version` resource attribute pair, with either key omitted
|
|
33
|
+
* rather than emitted empty when the host cannot determine it.
|
|
34
|
+
*
|
|
35
|
+
* @internal Exposed for cross-package use within this SDK; not part of the stable public API.
|
|
36
|
+
*/
|
|
37
|
+
export declare function osResourceAttributes(name: string | undefined, version: string | undefined): Record<string, string>;
|
|
38
|
+
//# sourceMappingURL=otlp-resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otlp-resource.d.ts","sourceRoot":"","sources":["../../src/utils/otlp-resource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,eAAe;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EACzD,MAAM,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,CAS1C;AA2BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlH"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
buildOtlpResourceAttributes: ()=>buildOtlpResourceAttributes,
|
|
28
|
+
normalizeOsName: ()=>normalizeOsName,
|
|
29
|
+
osResourceAttributes: ()=>osResourceAttributes
|
|
30
|
+
});
|
|
31
|
+
function buildOtlpResourceAttributes(config, sdkName, sdkVersion) {
|
|
32
|
+
return {
|
|
33
|
+
...config.resourceAttributes,
|
|
34
|
+
'service.name': config.serviceName || 'unknown_service',
|
|
35
|
+
...config.environment && {
|
|
36
|
+
'deployment.environment': config.environment
|
|
37
|
+
},
|
|
38
|
+
...config.serviceVersion && {
|
|
39
|
+
'service.version': config.serviceVersion
|
|
40
|
+
},
|
|
41
|
+
'telemetry.sdk.name': sdkName,
|
|
42
|
+
'telemetry.sdk.version': sdkVersion
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const OS_NAMES = {
|
|
46
|
+
darwin: 'macOS',
|
|
47
|
+
win32: 'Windows',
|
|
48
|
+
linux: 'Linux',
|
|
49
|
+
android: 'Android',
|
|
50
|
+
freebsd: 'FreeBSD',
|
|
51
|
+
openbsd: 'OpenBSD',
|
|
52
|
+
sunos: 'SunOS',
|
|
53
|
+
aix: 'AIX',
|
|
54
|
+
'Mac OS X': 'macOS'
|
|
55
|
+
};
|
|
56
|
+
function normalizeOsName(name) {
|
|
57
|
+
if (!name) return;
|
|
58
|
+
return Object.prototype.hasOwnProperty.call(OS_NAMES, name) ? OS_NAMES[name] : name;
|
|
59
|
+
}
|
|
60
|
+
function osResourceAttributes(name, version) {
|
|
61
|
+
const osName = normalizeOsName(name);
|
|
62
|
+
return {
|
|
63
|
+
...osName ? {
|
|
64
|
+
'os.name': osName
|
|
65
|
+
} : {},
|
|
66
|
+
...version ? {
|
|
67
|
+
'os.version': version
|
|
68
|
+
} : {}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
exports.buildOtlpResourceAttributes = __webpack_exports__.buildOtlpResourceAttributes;
|
|
72
|
+
exports.normalizeOsName = __webpack_exports__.normalizeOsName;
|
|
73
|
+
exports.osResourceAttributes = __webpack_exports__.osResourceAttributes;
|
|
74
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
75
|
+
"buildOtlpResourceAttributes",
|
|
76
|
+
"normalizeOsName",
|
|
77
|
+
"osResourceAttributes"
|
|
78
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
79
|
+
Object.defineProperty(exports, '__esModule', {
|
|
80
|
+
value: true
|
|
81
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function buildOtlpResourceAttributes(config, sdkName, sdkVersion) {
|
|
2
|
+
return {
|
|
3
|
+
...config.resourceAttributes,
|
|
4
|
+
'service.name': config.serviceName || 'unknown_service',
|
|
5
|
+
...config.environment && {
|
|
6
|
+
'deployment.environment': config.environment
|
|
7
|
+
},
|
|
8
|
+
...config.serviceVersion && {
|
|
9
|
+
'service.version': config.serviceVersion
|
|
10
|
+
},
|
|
11
|
+
'telemetry.sdk.name': sdkName,
|
|
12
|
+
'telemetry.sdk.version': sdkVersion
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const OS_NAMES = {
|
|
16
|
+
darwin: 'macOS',
|
|
17
|
+
win32: 'Windows',
|
|
18
|
+
linux: 'Linux',
|
|
19
|
+
android: 'Android',
|
|
20
|
+
freebsd: 'FreeBSD',
|
|
21
|
+
openbsd: 'OpenBSD',
|
|
22
|
+
sunos: 'SunOS',
|
|
23
|
+
aix: 'AIX',
|
|
24
|
+
'Mac OS X': 'macOS'
|
|
25
|
+
};
|
|
26
|
+
function normalizeOsName(name) {
|
|
27
|
+
if (!name) return;
|
|
28
|
+
return Object.prototype.hasOwnProperty.call(OS_NAMES, name) ? OS_NAMES[name] : name;
|
|
29
|
+
}
|
|
30
|
+
function osResourceAttributes(name, version) {
|
|
31
|
+
const osName = normalizeOsName(name);
|
|
32
|
+
return {
|
|
33
|
+
...osName ? {
|
|
34
|
+
'os.name': osName
|
|
35
|
+
} : {},
|
|
36
|
+
...version ? {
|
|
37
|
+
'os.version': version
|
|
38
|
+
} : {}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export { buildOtlpResourceAttributes, normalizeOsName, osResourceAttributes };
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -44,6 +44,7 @@ export {
|
|
|
44
44
|
getOtlpSeverityText,
|
|
45
45
|
} from './logs/logs-utils'
|
|
46
46
|
export { toOtlpAnyValue, toOtlpKeyValueList } from './utils/otlp-any-value'
|
|
47
|
+
export { osResourceAttributes } from './utils/otlp-resource'
|
|
47
48
|
export { PostHogLogs } from './logs'
|
|
48
49
|
export type {
|
|
49
50
|
BeforeSendLogFn,
|
package/src/logs/logs-utils.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { LogSdkContext, ResolvedPostHogLogsConfig } from './types'
|
|
|
12
12
|
import { isNullish, isNumber, isUndefined } from '../utils'
|
|
13
13
|
import { sanitizeString, UNSERIALIZABLE_VALUE } from '../utils/json-utils'
|
|
14
14
|
import { toOtlpKeyValueList } from '../utils/otlp-any-value'
|
|
15
|
+
import { buildOtlpResourceAttributes } from '../utils/otlp-resource'
|
|
15
16
|
|
|
16
17
|
// ============================================================================
|
|
17
18
|
// Severity mapping
|
|
@@ -185,14 +186,7 @@ export function buildResourceAttributes(
|
|
|
185
186
|
sdkName: string,
|
|
186
187
|
sdkVersion: string
|
|
187
188
|
): Record<string, LogAttributeValue> {
|
|
188
|
-
return
|
|
189
|
-
...config.resourceAttributes,
|
|
190
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
191
|
-
...(config.environment && { 'deployment.environment': config.environment }),
|
|
192
|
-
...(config.serviceVersion && { 'service.version': config.serviceVersion }),
|
|
193
|
-
'telemetry.sdk.name': sdkName,
|
|
194
|
-
'telemetry.sdk.version': sdkVersion,
|
|
195
|
-
}
|
|
189
|
+
return buildOtlpResourceAttributes(config, sdkName, sdkVersion)
|
|
196
190
|
}
|
|
197
191
|
|
|
198
192
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { MetricAttributeValue, OtlpMetric, OtlpMetricsPayload } from '@posthog/types'
|
|
2
2
|
import { toOtlpKeyValueList } from '../utils/otlp-any-value'
|
|
3
|
+
import { buildOtlpResourceAttributes } from '../utils/otlp-resource'
|
|
3
4
|
import type { ResolvedPostHogMetricsConfig } from './types'
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -59,14 +60,7 @@ export function buildMetricsResourceAttributes(
|
|
|
59
60
|
scopeName: string,
|
|
60
61
|
scopeVersion: string
|
|
61
62
|
): Record<string, MetricAttributeValue> {
|
|
62
|
-
return
|
|
63
|
-
...config.resourceAttributes,
|
|
64
|
-
'service.name': config.serviceName || 'unknown_service',
|
|
65
|
-
...(config.environment && { 'deployment.environment': config.environment }),
|
|
66
|
-
...(config.serviceVersion && { 'service.version': config.serviceVersion }),
|
|
67
|
-
'telemetry.sdk.name': scopeName,
|
|
68
|
-
'telemetry.sdk.version': scopeVersion,
|
|
69
|
-
}
|
|
63
|
+
return buildOtlpResourceAttributes(config, scopeName, scopeVersion)
|
|
70
64
|
}
|
|
71
65
|
|
|
72
66
|
/**
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { buildResourceAttributes } from '../logs/logs-utils'
|
|
2
|
+
import type { ResolvedPostHogLogsConfig } from '../logs/types'
|
|
3
|
+
import { buildMetricsResourceAttributes } from '../metrics/metrics-utils'
|
|
4
|
+
import type { ResolvedPostHogMetricsConfig } from '../metrics/types'
|
|
5
|
+
import { normalizeOsName, osResourceAttributes } from './otlp-resource'
|
|
6
|
+
|
|
7
|
+
const shared = {
|
|
8
|
+
serviceName: 'checkout',
|
|
9
|
+
serviceVersion: '2.1.0',
|
|
10
|
+
environment: 'production',
|
|
11
|
+
resourceAttributes: { 'host.name': 'web-01' },
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const conflicting = {
|
|
15
|
+
serviceName: 'checkout',
|
|
16
|
+
serviceVersion: '2.1.0',
|
|
17
|
+
environment: 'production',
|
|
18
|
+
resourceAttributes: {
|
|
19
|
+
'service.name': 'hijacked',
|
|
20
|
+
'service.version': '0.0.0',
|
|
21
|
+
'deployment.environment': 'hijacked-env',
|
|
22
|
+
'telemetry.sdk.name': 'hijacked-sdk',
|
|
23
|
+
'telemetry.sdk.version': '0.0.0',
|
|
24
|
+
'host.name': 'web-01',
|
|
25
|
+
},
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const bothSignals = (partial: object): Record<string, unknown>[] => [
|
|
29
|
+
buildResourceAttributes(partial as ResolvedPostHogLogsConfig, 'posthog-node', '1.0.0'),
|
|
30
|
+
buildMetricsResourceAttributes(partial as ResolvedPostHogMetricsConfig, 'posthog-node', '1.0.0'),
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
describe('shared OTLP resource attributes', () => {
|
|
34
|
+
it.each([
|
|
35
|
+
['a fully populated config', shared],
|
|
36
|
+
['a config with conflicting user attributes', conflicting],
|
|
37
|
+
['an empty config', {}],
|
|
38
|
+
])('produces the same attributes for logs and metrics given %s', (_label, config) => {
|
|
39
|
+
const [logs, metrics] = bothSignals(config)
|
|
40
|
+
expect(metrics).toEqual(logs)
|
|
41
|
+
expect(Object.keys(metrics)).toEqual(Object.keys(logs))
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('layers the identity keys over user resource attributes', () => {
|
|
45
|
+
for (const attributes of bothSignals(conflicting)) {
|
|
46
|
+
expect(attributes).toEqual({
|
|
47
|
+
'service.name': 'checkout',
|
|
48
|
+
'service.version': '2.1.0',
|
|
49
|
+
'deployment.environment': 'production',
|
|
50
|
+
'telemetry.sdk.name': 'posthog-node',
|
|
51
|
+
'telemetry.sdk.version': '1.0.0',
|
|
52
|
+
'host.name': 'web-01',
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('keeps user resource attributes that do not collide', () => {
|
|
58
|
+
for (const attributes of bothSignals(shared)) {
|
|
59
|
+
expect(attributes).toEqual({
|
|
60
|
+
'host.name': 'web-01',
|
|
61
|
+
'service.name': 'checkout',
|
|
62
|
+
'deployment.environment': 'production',
|
|
63
|
+
'service.version': '2.1.0',
|
|
64
|
+
'telemetry.sdk.name': 'posthog-node',
|
|
65
|
+
'telemetry.sdk.version': '1.0.0',
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
it('falls back to unknown_service and omits unset optional keys', () => {
|
|
71
|
+
for (const attributes of bothSignals({})) {
|
|
72
|
+
expect(attributes).toEqual({
|
|
73
|
+
'service.name': 'unknown_service',
|
|
74
|
+
'telemetry.sdk.name': 'posthog-node',
|
|
75
|
+
'telemetry.sdk.version': '1.0.0',
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
describe('osResourceAttributes', () => {
|
|
82
|
+
it.each([
|
|
83
|
+
// node:os platform() identifiers rather than os.name values
|
|
84
|
+
['darwin', 'macOS'],
|
|
85
|
+
['win32', 'Windows'],
|
|
86
|
+
['linux', 'Linux'],
|
|
87
|
+
['android', 'Android'],
|
|
88
|
+
['freebsd', 'FreeBSD'],
|
|
89
|
+
// detectOS spellings
|
|
90
|
+
['Mac OS X', 'macOS'],
|
|
91
|
+
['iOS', 'iOS'],
|
|
92
|
+
['Android', 'Android'],
|
|
93
|
+
['Windows', 'Windows'],
|
|
94
|
+
['Linux', 'Linux'],
|
|
95
|
+
])('normalizes %s to %s', (raw, expected) => {
|
|
96
|
+
expect(normalizeOsName(raw)).toBe(expected)
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
it('passes an unmapped name through rather than dropping it', () => {
|
|
100
|
+
expect(normalizeOsName('Haiku')).toBe('Haiku')
|
|
101
|
+
expect(normalizeOsName('constructor')).toBe('constructor')
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
it.each([undefined, ''])('returns undefined for %p', (raw) => {
|
|
105
|
+
expect(normalizeOsName(raw)).toBeUndefined()
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
it('agrees with the names posthog-ios and posthog-android already send', () => {
|
|
109
|
+
// Both SDKs ship these values today; a divergence here splits one filter in two.
|
|
110
|
+
expect(normalizeOsName('darwin')).toBe('macOS')
|
|
111
|
+
expect(normalizeOsName('Mac OS X')).toBe('macOS')
|
|
112
|
+
expect(normalizeOsName('iOS')).toBe('iOS')
|
|
113
|
+
expect(normalizeOsName('Android')).toBe('Android')
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
it('omits either key rather than emitting it empty', () => {
|
|
117
|
+
expect(osResourceAttributes('darwin', undefined)).toEqual({ 'os.name': 'macOS' })
|
|
118
|
+
expect(osResourceAttributes(undefined, '14.0')).toEqual({ 'os.version': '14.0' })
|
|
119
|
+
expect(osResourceAttributes('', '')).toEqual({})
|
|
120
|
+
expect(osResourceAttributes('win32', '10.0.26100')).toEqual({
|
|
121
|
+
'os.name': 'Windows',
|
|
122
|
+
'os.version': '10.0.26100',
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
})
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shape the logs and metrics resolved configs share for resource
|
|
3
|
+
* attribution. Generic over the attribute value type so each signal keeps its
|
|
4
|
+
* own value union.
|
|
5
|
+
*/
|
|
6
|
+
export interface OtlpResourceConfig<TAttributeValue> {
|
|
7
|
+
serviceName?: string
|
|
8
|
+
serviceVersion?: string
|
|
9
|
+
environment?: string
|
|
10
|
+
resourceAttributes?: Record<string, TAttributeValue>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* OTLP resource attributes shared by the logs and metrics envelopes.
|
|
15
|
+
*
|
|
16
|
+
* User `resourceAttributes` are spread first, then SDK-controlled keys on top so
|
|
17
|
+
* a stray user key can't clobber the ingestion-attribution ones; the dedicated
|
|
18
|
+
* `serviceName` / `environment` / `serviceVersion` fields are how you override
|
|
19
|
+
* those three.
|
|
20
|
+
*
|
|
21
|
+
* @internal Shared within this SDK; not part of the stable public API.
|
|
22
|
+
*/
|
|
23
|
+
export function buildOtlpResourceAttributes<TAttributeValue>(
|
|
24
|
+
config: OtlpResourceConfig<TAttributeValue>,
|
|
25
|
+
sdkName: string,
|
|
26
|
+
sdkVersion: string
|
|
27
|
+
): Record<string, TAttributeValue | string> {
|
|
28
|
+
return {
|
|
29
|
+
...config.resourceAttributes,
|
|
30
|
+
'service.name': config.serviceName || 'unknown_service',
|
|
31
|
+
...(config.environment && { 'deployment.environment': config.environment }),
|
|
32
|
+
...(config.serviceVersion && { 'service.version': config.serviceVersion }),
|
|
33
|
+
'telemetry.sdk.name': sdkName,
|
|
34
|
+
'telemetry.sdk.version': sdkVersion,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* OTLP `os.name` values, keyed by the spellings the JS SDKs detect natively:
|
|
40
|
+
* `node:os` `platform()` identifiers and the names `detectOS` reads out of a
|
|
41
|
+
* user agent.
|
|
42
|
+
*
|
|
43
|
+
* OpenTelemetry defines `os.name` as the human-readable OS name; the lowercase
|
|
44
|
+
* identifiers (`darwin`, `win32`) are `node:os` `platform()` values, not
|
|
45
|
+
* `os.name` values.
|
|
46
|
+
* The values match what `posthog-ios` and `posthog-android` send for the
|
|
47
|
+
* platforms they cover.
|
|
48
|
+
*/
|
|
49
|
+
const OS_NAMES: Record<string, string> = {
|
|
50
|
+
// node:os platform()
|
|
51
|
+
darwin: 'macOS',
|
|
52
|
+
win32: 'Windows',
|
|
53
|
+
linux: 'Linux',
|
|
54
|
+
android: 'Android',
|
|
55
|
+
freebsd: 'FreeBSD',
|
|
56
|
+
openbsd: 'OpenBSD',
|
|
57
|
+
sunos: 'SunOS',
|
|
58
|
+
aix: 'AIX',
|
|
59
|
+
// detectOS
|
|
60
|
+
'Mac OS X': 'macOS',
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Normalizes a natively-detected OS name against the table above.
|
|
65
|
+
* Unrecognized names pass through: a wrong-looking value beats dropping an OS
|
|
66
|
+
* we have not mapped yet.
|
|
67
|
+
*
|
|
68
|
+
* @internal Shared within this SDK; not part of the stable public API.
|
|
69
|
+
*/
|
|
70
|
+
export function normalizeOsName(name: string | undefined): string | undefined {
|
|
71
|
+
if (!name) {
|
|
72
|
+
return undefined
|
|
73
|
+
}
|
|
74
|
+
return Object.prototype.hasOwnProperty.call(OS_NAMES, name) ? OS_NAMES[name] : name
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The `os.name` / `os.version` resource attribute pair, with either key omitted
|
|
79
|
+
* rather than emitted empty when the host cannot determine it.
|
|
80
|
+
*
|
|
81
|
+
* @internal Exposed for cross-package use within this SDK; not part of the stable public API.
|
|
82
|
+
*/
|
|
83
|
+
export function osResourceAttributes(name: string | undefined, version: string | undefined): Record<string, string> {
|
|
84
|
+
const osName = normalizeOsName(name)
|
|
85
|
+
return {
|
|
86
|
+
...(osName ? { 'os.name': osName } : {}),
|
|
87
|
+
...(version ? { 'os.version': version } : {}),
|
|
88
|
+
}
|
|
89
|
+
}
|