我正在使用https://cloud.google.com/trace/docs/setup/nodejs-ot的指令将Node.js OpenTelemetrics收集到Cloud Trace。现在我想添加前端堆栈跟踪。
我尝试添加@opentelemetry/exporter-trace-otlp-http
:
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';
import { Resource } from '@opentelemetry/resources';
import {
ConsoleSpanExporter,
SimpleSpanProcessor,
WebTracerProvider,
} from '@opentelemetry/sdk-trace-web';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
const consoleExporter = new ConsoleSpanExporter();
const collectorExporter = new OTLPTraceExporter({
headers: {},
});
const provider = new WebTracerProvider({
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: 'contra-web-app',
}),
});
const fetchInstrumentation = new FetchInstrumentation({});
fetchInstrumentation.setTracerProvider(provider);
provider.addSpanProcessor(new SimpleSpanProcessor(consoleExporter));
provider.addSpanProcessor(new SimpleSpanProcessor(collectorExporter));
provider.register();
registerInstrumentations({
instrumentations: [fetchInstrumentation],
tracerProvider: provider,
});
export const TraceProvider = ({ children }) => {
return <>{children}</>;
};
字符串
我看到它试图向/v1/traces
发送数据。但是,该端点上没有侦听任何内容。
我需要部署什么到/v1/traces
才能让云跟踪摄取跟踪?
2条答案
按热度按时间goucqfw61#
经过检查,这是一个正在积极开发的实验包。[1]最好的方法是提交一个功能请求,让产品工程师审查,如果你需要这个用例。
[1][https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-http](https://www.npmjs.com/package/@opentelemetry/exporter-trace-otlp-http)
kqhtkvqz2#
您需要部署opentelemetry-collector。
我最终使用的方法是使用Helm chart。
然后,您需要配置一个otlp接收器,例如
字符串
并使用Ingress将其暴露到Web上。
然后,您需要配置
googlecloudexporter
(它已经捆绑在Helm chart中,因此您只需要配置它)。型
然后,您需要提供
GOOGLE_APPLICATION_CREDENTIALS
凭证给此服务,并使用Cloud Trace API访问范围,然后您可以像这样挂载:型
整个事情可能看起来像这样:
型