@mastra/observability 1.8.0-alpha.0 → 1.8.0-alpha.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/CHANGELOG.md +29 -0
- package/dist/config.d.ts +65 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/exporters/test.d.ts.map +1 -1
- package/dist/index.cjs +56 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +57 -16
- package/dist/index.js.map +1 -1
- package/dist/instances/base.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MastraBase } from '@mastra/core/base';
|
|
2
2
|
import { MastraError, ErrorCategory, ErrorDomain } from '@mastra/core/error';
|
|
3
3
|
import { ConsoleLogger, LogLevel, RegisteredLogger } from '@mastra/core/logger';
|
|
4
|
-
import { TracingEventType, DEFAULT_BLOCKED_LABELS,
|
|
4
|
+
import { SpanType, TracingEventType, DEFAULT_BLOCKED_LABELS, noOpLoggerContext, InternalSpans } from '@mastra/core/observability';
|
|
5
5
|
import { fetchWithRetry, getNestedValue, setNestedValue } from '@mastra/core/utils';
|
|
6
6
|
import { buildUpdateSpanRecord, buildFeedbackRecord, buildLogRecord, buildMetricRecord, buildScoreRecord, buildCreateSpanRecord } from '@mastra/core/storage';
|
|
7
7
|
import fs from 'fs';
|
|
@@ -13847,17 +13847,36 @@ var serializationOptionsSchema = external_exports.object({
|
|
|
13847
13847
|
maxArrayLength: external_exports.number().int().positive().optional(),
|
|
13848
13848
|
maxObjectKeys: external_exports.number().int().positive().optional()
|
|
13849
13849
|
}).optional();
|
|
13850
|
-
var
|
|
13851
|
-
|
|
13850
|
+
var LOG_LEVELS = ["debug", "info", "warn", "error", "fatal"];
|
|
13851
|
+
var cardinalityConfigSchema = external_exports.object({
|
|
13852
|
+
blockedLabels: external_exports.array(external_exports.string()).optional(),
|
|
13853
|
+
blockUUIDs: external_exports.boolean().optional()
|
|
13854
|
+
}).optional();
|
|
13855
|
+
var loggingConfigSchema = external_exports.object({
|
|
13856
|
+
enabled: external_exports.boolean().optional(),
|
|
13857
|
+
level: external_exports.enum(LOG_LEVELS).optional()
|
|
13858
|
+
}).optional();
|
|
13859
|
+
var spanFilterSchema = external_exports.function({
|
|
13860
|
+
input: external_exports.tuple([external_exports.any()]),
|
|
13861
|
+
output: external_exports.boolean()
|
|
13862
|
+
}).optional();
|
|
13863
|
+
var observabilityInstanceConfigFields = {
|
|
13852
13864
|
serviceName: external_exports.string().min(1, "Service name is required"),
|
|
13853
13865
|
sampling: samplingStrategySchema.optional(),
|
|
13854
13866
|
exporters: external_exports.array(external_exports.any()).optional(),
|
|
13855
13867
|
bridge: external_exports.any().optional(),
|
|
13856
13868
|
spanOutputProcessors: external_exports.array(external_exports.any()).optional(),
|
|
13857
13869
|
includeInternalSpans: external_exports.boolean().optional(),
|
|
13870
|
+
excludeSpanTypes: external_exports.array(external_exports.nativeEnum(SpanType)).optional(),
|
|
13871
|
+
spanFilter: spanFilterSchema,
|
|
13858
13872
|
requestContextKeys: external_exports.array(external_exports.string()).optional(),
|
|
13859
13873
|
serializationOptions: serializationOptionsSchema,
|
|
13860
|
-
cardinality:
|
|
13874
|
+
cardinality: cardinalityConfigSchema,
|
|
13875
|
+
logging: loggingConfigSchema
|
|
13876
|
+
};
|
|
13877
|
+
var observabilityInstanceConfigSchema = external_exports.object({
|
|
13878
|
+
name: external_exports.string().min(1, "Name is required"),
|
|
13879
|
+
...observabilityInstanceConfigFields
|
|
13861
13880
|
}).refine(
|
|
13862
13881
|
(data) => {
|
|
13863
13882
|
const hasExporters = data.exporters && data.exporters.length > 0;
|
|
@@ -13868,16 +13887,7 @@ var observabilityInstanceConfigSchema = external_exports.object({
|
|
|
13868
13887
|
message: "At least one exporter or a bridge is required"
|
|
13869
13888
|
}
|
|
13870
13889
|
);
|
|
13871
|
-
var observabilityConfigValueSchema = external_exports.object(
|
|
13872
|
-
serviceName: external_exports.string().min(1, "Service name is required"),
|
|
13873
|
-
sampling: samplingStrategySchema.optional(),
|
|
13874
|
-
exporters: external_exports.array(external_exports.any()).optional(),
|
|
13875
|
-
bridge: external_exports.any().optional(),
|
|
13876
|
-
spanOutputProcessors: external_exports.array(external_exports.any()).optional(),
|
|
13877
|
-
includeInternalSpans: external_exports.boolean().optional(),
|
|
13878
|
-
requestContextKeys: external_exports.array(external_exports.string()).optional(),
|
|
13879
|
-
serializationOptions: serializationOptionsSchema
|
|
13880
|
-
}).refine(
|
|
13890
|
+
var observabilityConfigValueSchema = external_exports.object(observabilityInstanceConfigFields).refine(
|
|
13881
13891
|
(data) => {
|
|
13882
13892
|
const hasExporters = data.exporters && data.exporters.length > 0;
|
|
13883
13893
|
const hasBridge = !!data.bridge;
|
|
@@ -16686,6 +16696,9 @@ var TestExporter = class extends BaseExporter {
|
|
|
16686
16696
|
if (value instanceof Date) {
|
|
16687
16697
|
return "<date>";
|
|
16688
16698
|
}
|
|
16699
|
+
if (key === "createdAt" && typeof value === "number") {
|
|
16700
|
+
return "<date>";
|
|
16701
|
+
}
|
|
16689
16702
|
if (typeof value === "string") {
|
|
16690
16703
|
if (key === "traceId" && (uuidRegex.test(value) || hexId32Regex.test(value))) {
|
|
16691
16704
|
if (!traceIdMap.has(value)) {
|
|
@@ -16714,7 +16727,23 @@ var TestExporter = class extends BaseExporter {
|
|
|
16714
16727
|
if (value && typeof value === "object") {
|
|
16715
16728
|
const normalized = {};
|
|
16716
16729
|
for (const [k, v] of Object.entries(value)) {
|
|
16717
|
-
|
|
16730
|
+
if (key === "providerOptions" && k === "mastra" && v && typeof v === "object") {
|
|
16731
|
+
const mastraOptions = v;
|
|
16732
|
+
const remainingMastraOptions = Object.fromEntries(
|
|
16733
|
+
Object.entries(mastraOptions).filter(([mastraKey]) => mastraKey !== "createdAt")
|
|
16734
|
+
);
|
|
16735
|
+
if (Object.keys(remainingMastraOptions).length > 0) {
|
|
16736
|
+
normalized[k] = normalizeValue(remainingMastraOptions, k);
|
|
16737
|
+
}
|
|
16738
|
+
continue;
|
|
16739
|
+
}
|
|
16740
|
+
const normalizedValue = normalizeValue(v, k);
|
|
16741
|
+
if (normalizedValue !== void 0) {
|
|
16742
|
+
normalized[k] = normalizedValue;
|
|
16743
|
+
}
|
|
16744
|
+
}
|
|
16745
|
+
if (key === "providerOptions" && Object.keys(normalized).length === 0) {
|
|
16746
|
+
return void 0;
|
|
16718
16747
|
}
|
|
16719
16748
|
return normalized;
|
|
16720
16749
|
}
|
|
@@ -19467,6 +19496,8 @@ var BaseObservabilityInstance = class extends MastraBase {
|
|
|
19467
19496
|
spanOutputProcessors: config2.spanOutputProcessors ?? [],
|
|
19468
19497
|
bridge: config2.bridge ?? void 0,
|
|
19469
19498
|
includeInternalSpans: config2.includeInternalSpans ?? false,
|
|
19499
|
+
excludeSpanTypes: config2.excludeSpanTypes,
|
|
19500
|
+
spanFilter: config2.spanFilter,
|
|
19470
19501
|
requestContextKeys: config2.requestContextKeys ?? [],
|
|
19471
19502
|
serializationOptions: config2.serializationOptions,
|
|
19472
19503
|
logging: config2.logging
|
|
@@ -19852,8 +19883,18 @@ var BaseObservabilityInstance = class extends MastraBase {
|
|
|
19852
19883
|
getSpanForExport(span) {
|
|
19853
19884
|
if (!span.isValid) return void 0;
|
|
19854
19885
|
if (span.isInternal && !this.config.includeInternalSpans) return void 0;
|
|
19886
|
+
if (this.config.excludeSpanTypes?.includes(span.type)) return void 0;
|
|
19855
19887
|
const processedSpan = this.processSpan(span);
|
|
19856
|
-
|
|
19888
|
+
const exportedSpan = processedSpan?.exportSpan(this.config.includeInternalSpans);
|
|
19889
|
+
if (!exportedSpan) return void 0;
|
|
19890
|
+
if (this.config.spanFilter) {
|
|
19891
|
+
try {
|
|
19892
|
+
if (!this.config.spanFilter(exportedSpan)) return void 0;
|
|
19893
|
+
} catch (error48) {
|
|
19894
|
+
this.logger.error(`[Observability] spanFilter error`, error48);
|
|
19895
|
+
}
|
|
19896
|
+
}
|
|
19897
|
+
return exportedSpan;
|
|
19857
19898
|
}
|
|
19858
19899
|
/**
|
|
19859
19900
|
* Emit a span started event.
|