@alchemy.run/axiom (英语)
轴 页:1 炼金术。宣布OpenTeleometry数据集、摄入令牌、显示器和显示器在数据发送代码旁边.
npm install alchemy @alchemy.run/axiom effect
用于跟踪和日志的数据集,一个只摄入的符号和一个显示器:
// alchemy.run.ts
import * as Alchemy from "alchemy";
import * as Axiom from "@alchemy.run/axiom";
import * as Effect from "effect/Effect";
export default Alchemy.Stack(
"Observability",
{
providers: Axiom.providers(),
state: Alchemy.localState(),
},
Effect.gen(function* () {
const traces = yield* Axiom.Dataset("traces", { name: "app-traces", kind: "otel:traces:v1" });
const logs = yield* Axiom.Dataset("logs", { name: "app-logs", kind: "otel:logs:v1" });
// Can write to the two datasets and nothing else.
const ingest = yield* Axiom.ApiToken("ingest", {
name: "app-ingest",
datasetCapabilities: {
"app-traces": { ingest: ["create"] },
"app-logs": { ingest: ["create"] },
},
});
yield* Axiom.Monitor("panics", {
name: "Service panic",
type: "MatchEvent",
aplQuery: `['app-logs'] | where message contains "panic:"`,
intervalMinutes: 1,
rangeMinutes: 1,
});
return {
tracesEndpoint: traces.otelTracesEndpoint,
logsEndpoint: logs.otelLogsEndpoint,
token: ingest.token,
};
}),
);
将终点和标志传递给工人或Lambda作为环境变量,以及其OpenTeleometry出口商船直通Axiom.