希望将Next.js应用程序记录到Azure Application insight。
我有以下instrumentation.ts
代码
import { AzureMonitorTraceExporter } from '@azure/monitor-opentelemetry-exporter'
import { Resource } from '@opentelemetry/resources'
import {
NodeTracerProvider,
SimpleSpanProcessor,
} from '@opentelemetry/sdk-trace-node'
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
export async function register() {
if (process.env.NEXT_RUNTIME === 'nodejs') {
const provider = new NodeTracerProvider({
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: 'my-app',
}),
})
// Create an exporter instance
const exporter = new AzureMonitorTraceExporter({
connectionString:
process.env['APPLICATIONINSIGHTS_CONNECTION_STRING'] ||
'<your connection string>',
})
provider.addSpanProcessor(new SimpleSpanProcessor(exporter))
provider.register()
}
}
这会导致启动应用程序时出现以下错误../../node_modules/@azure/monitor-opentelemetry-exporter/dist-esm/src/export/statsbeat/statsbeatMetrics.js:6:0 Module not found: Can't resolve 'os'
有什么好办法吗?
1条答案
按热度按时间cwdobuhd1#
错误消息是由于缺少相关性。
这个
@azure/monitor-opentelemetry-exporter
包依赖于os
模块,这是一个内置的Node.js模块。将
os
模块添加到您的项目依赖项中,并在终端中运行以下命令,您可以解决它。另一种方法是通过运行以下命令将
@azure/monitor-opentelemetry-exporter
包更新到最新版本。并查看official Azure documentation中的说明,以使用
OpenTelemetry
将Next.js应用程序记录到Azure Application Insights。痕迹
跟踪日志:
查看日志跟踪的代码
已将遥测放入此location。