You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are currently working on a small PoC for getting a monitoring solution up and running. We basically went with the recommendations and instrumented our two web-clients with application insights sdk + react plugin and our node/express backend with with the Azure OpenTelemetry Distro + some additional otel sdks (mainly for express). Every component has their own application insights resource where the telemetry data is exported to.
Now, from a backend perspective everything seems to work fine, requests are showing up, the mongodb and other external dependencies are correctly visualized in the application map.
Looking at one of the isolated client application map, we also see everything correctly. The backend is running on localhost:8080 and the client on localhost:3000.
When clicking on 'Update map components', we get the full picture with all components.
Frontend 1 (localhost:3000), Frontend 2 (localhost:3001) and the Backend (localhost:8080). We don't see the calls from the web-clients to the backend, however what we can see are the transaction details including a full trace. I removed some identifying information here, hope thats fine.
Expected behavior
Calls should get visualized between web-clients / backend, as can be seen in #1207.
exportconstintializeTelemetry=()=>{consthttpInstrumentationConfig: HttpInstrumentationConfig={enabled: true,ignoreIncomingRequestHook: (request: IncomingMessage)=>{// Ignore OPTIONS incoming requestsif(request.method==='OPTIONS'){returntrue;}returnfalse;},};constcustomResource=Resource.EMPTY;customResource.attributes[SemanticResourceAttributes.SERVICE_NAME]='Backend';constmongoInstrumentationConfig: MongoDBInstrumentationConfig={enabled: true,enhancedDatabaseReporting: true,};constoptions: AzureMonitorOpenTelemetryOptions={resource: customResource,azureMonitorExporterOptions: {connectionString: process.env.APPLICATION_INSIGHTS_CONNECTION_STRING,},instrumentationOptions: {http: httpInstrumentationConfig,mongoDb: mongoInstrumentationConfig,},};useAzureMonitor(options);addOpenTelemetryInstrumentation();};/** * Add additional OpenTelemetry instrumentation that is not bundled with Azure OpenTelemetry Distro */constaddOpenTelemetryInstrumentation=()=>{constinstrumentations=[newExpressInstrumentation()];registerInstrumentations({tracerProvider: trace.getTracerProvider(),meterProvider: metrics.getMeterProvider(),instrumentations: instrumentations,});};
Additional Information
We played around a bit with the configuration of app insights in the web-clients as you can see from the things commented out. Changing distributedTracingMode to only AI or W3C didn't really give a different outcome.
Request-Id and traceparent are also correctly added to the client requests headers.
I'd really appreciate any hints on how to solve this.
The text was updated successfully, but these errors were encountered:
Changing distributedTracingMode to only AI or W3C didn't really give a different outcome.
The default value for this is to send both AI and W3C headers, so I'm not surprised that this didn't change anything as you really need to have the W3C header being sent.
@siyuniu-ms Can you please drill into the details here and if necessary please engage the portal team to try and understand why the App Map is not showing the client calls.
Description
Hey together!
We are currently working on a small PoC for getting a monitoring solution up and running. We basically went with the recommendations and instrumented our two web-clients with application insights sdk + react plugin and our node/express backend with with the Azure OpenTelemetry Distro + some additional otel sdks (mainly for express). Every component has their own application insights resource where the telemetry data is exported to.
Now, from a backend perspective everything seems to work fine, requests are showing up, the mongodb and other external dependencies are correctly visualized in the application map.
Looking at one of the isolated client application map, we also see everything correctly. The backend is running on
localhost:8080
and the client onlocalhost:3000
.When clicking on 'Update map components', we get the full picture with all components.
Frontend 1 (
localhost:3000
), Frontend 2 (localhost:3001
) and the Backend (localhost:8080
). We don't see the calls from the web-clients to the backend, however what we can see are the transaction details including a full trace. I removed some identifying information here, hope thats fine.Expected behavior
Calls should get visualized between web-clients / backend, as can be seen in #1207.
Environment
Web-Clients:
Backend:
AI Setup / Web-Clients
Azure OTel Distro Setup / Backend
The setup heavily borrows from this example.
Additional Information
We played around a bit with the configuration of app insights in the web-clients as you can see from the things commented out. Changing
distributedTracingMode
to onlyAI
orW3C
didn't really give a different outcome.Request-Id
andtraceparent
are also correctly added to the client requests headers.I'd really appreciate any hints on how to solve this.
The text was updated successfully, but these errors were encountered: