@ogcio/o11y-sdk-node
Version:
Opentelemetry standard instrumentation SDK for NodeJS based project
31 lines (24 loc) • 856 B
text/typescript
import {
ResourceDetector,
DetectedResource,
DetectedResourceAttributes,
} from "@opentelemetry/resources";
import { SignalAttributeValue } from "./index.js";
import packageJson from "../package.json" with { type: "json" };
export class ObservabilityResourceDetector implements ResourceDetector {
private _resourceAttributes: Record<string, SignalAttributeValue> | undefined;
constructor(resourceAttributes?: Record<string, SignalAttributeValue>) {
this._resourceAttributes = resourceAttributes;
}
detect(): DetectedResource {
let attributes: DetectedResourceAttributes = {};
if (this._resourceAttributes) {
attributes = {
...this._resourceAttributes,
};
}
attributes["o11y.sdk.name"] = packageJson.name;
attributes["o11y.sdk.version"] = packageJson.version;
return { attributes };
}
}