EdgeAIG's picture
download
raw
2.87 kB
import { flow } from "../../Function.js";
import * as Layer from "../../Layer.js";
import * as HttpClientRequest from "../http/HttpClientRequest.js";
import * as OtlpLogger from "./OtlpLogger.js";
import * as OtlpMetrics from "./OtlpMetrics.js";
import * as OtlpSerialization from "./OtlpSerialization.js";
import * as OtlpTracer from "./OtlpTracer.js";
/**
* Creates a combined OTLP layer for logs, metrics, and traces.
*
* **Details**
*
* The layer sends data to `/v1/logs`, `/v1/metrics`, and `/v1/traces` below
* `baseUrl` and requires an `OtlpSerialization` implementation.
*
* @category layers
* @since 4.0.0
*/
export const layer = options => {
const base = HttpClientRequest.get(options.baseUrl);
const url = path => HttpClientRequest.appendUrl(base, path).url;
return Layer.mergeAll(OtlpLogger.layer({
url: url("/v1/logs"),
resource: options.resource,
headers: options.headers,
exportInterval: options.loggerExportInterval,
maxBatchSize: options.maxBatchSize,
shutdownTimeout: options.shutdownTimeout,
excludeLogSpans: options.loggerExcludeLogSpans,
mergeWithExisting: options.loggerMergeWithExisting
}), OtlpMetrics.layer({
url: url("/v1/metrics"),
resource: options.resource,
headers: options.headers,
exportInterval: options.metricsExportInterval,
shutdownTimeout: options.shutdownTimeout,
temporality: options.metricsTemporality
}), OtlpTracer.layer({
url: url("/v1/traces"),
resource: options.resource,
headers: options.headers,
exportInterval: options.tracerExportInterval,
maxBatchSize: options.maxBatchSize,
context: options.tracerContext,
shutdownTimeout: options.shutdownTimeout
}));
};
/**
* Creates a combined OTLP layer for logs, metrics, and traces from
* OpenTelemetry configuration.
*
* @category layers
* @since 4.0.0
*/
export const layerFromConfig = options => Layer.mergeAll(OtlpLogger.layerFromConfig({
resource: options?.resource,
headers: options?.headers,
excludeLogSpans: options?.loggerExcludeLogSpans,
mergeWithExisting: options?.loggerMergeWithExisting
}), OtlpMetrics.layerFromConfig({
resource: options?.resource,
headers: options?.headers
}), OtlpTracer.layerFromConfig({
resource: options?.resource,
headers: options?.headers,
context: options?.tracerContext
}));
/**
* Creates the combined OTLP logs, metrics, and traces layer using JSON
* serialization.
*
* @category layers
* @since 4.0.0
*/
export const layerJson = /*#__PURE__*/flow(layer, /*#__PURE__*/Layer.provide(OtlpSerialization.layerJson));
/**
* Creates the combined OTLP logs, metrics, and traces layer using protobuf
* serialization.
*
* @category layers
* @since 4.0.0
*/
export const layerProtobuf = /*#__PURE__*/flow(layer, /*#__PURE__*/Layer.provide(OtlpSerialization.layerProtobuf));
//# sourceMappingURL=Otlp.js.map

Xet Storage Details

Size:
2.87 kB
·
Xet hash:
6e32e15d0e1170736d68b7b8f8b939e6232d850b52f95d887b7790f367fd54fb

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.