# Traces using opentelemetry SDK to EDOT collector does not show the url path

**URL:** <https://discuss.elastic.co/t/traces-using-opentelemetry-sdk-to-edot-collector-does-not-show-the-url-path/381541>\
**Category:** APM\
**Tags:** nodejs, open-telemetry\
**Created:** [September 3, 2025, 3:33am UTC](https://discuss.elastic.co/t/traces-using-opentelemetry-sdk-to-edot-collector-does-not-show-the-url-path/381541 "2025-09-03T03:33:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mikhatanu](https://avatars.discourse-cdn.com/v4/letter/m/ba8739/32.png) [@mikhatanu](https://discuss.elastic.co/u/mikhatanu)\
**Post date:** [September 3, 2025, 3:33am UTC](https://discuss.elastic.co/t/traces-using-opentelemetry-sdk-to-edot-collector-does-not-show-the-url-path/381541/1 "2025-09-03T03:33:06Z")

</div>

I’m trying opentelemetry in elasticstack, currently i’m using this: OpenTelemetry node js SDK → EDOT collector → Elasticsearch

For sdk, i use autoinstrumentation using opentelemetry operator. For EDOT collector, I used the default config provided by elastic [documentation](https://raw.githubusercontent.com/elastic/elastic-agent/refs/tags/v9.0.4/internal/pkg/otel/samples/linux/gateway.yml).

The traces appears in the UI, but it is missing url path:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/2/920b56bc2bae61976935a338512af4536b196165.png)

When clicking the trace for detail, some display path and some not:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/9/4/942a37e016e20b849c4ec6aacba03e3e35961c7f.png)

I think the span name is also different. The span with path has the span.name with the path, while the one with ‘GET’ Only has span.name with ‘GET’

Is this normal behavior?

**Kibana version** : 9.1

**Elasticsearch version** : 9.1

---

<div class="post-metadata">

**Author:** ![trentm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/trentm/32/77647_2.png) [@trentm](https://discuss.elastic.co/u/trentm)\
**Post date:** [September 9, 2025, 10:03pm UTC](https://discuss.elastic.co/t/traces-using-opentelemetry-sdk-to-edot-collector-does-not-show-the-url-path/381541/2 "2025-09-09T22:03:18Z")

</div>

> [@mikhatanu](#):
>
> Is this normal behavior?

Hi @mikhatanu, this can be the normal behavior for OpenTelemetry JS instrumentations, yes. According to the [OpenTelemetry spec for HTTP span names](https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name) _by default_ the span name should just be the HTTP method (e.g. `GET` or `PUT`) unless it can be known that the span name will be low cardinality (i.e. won't have possibly 1000s of different values).

The url path _is_ collected as part of the span. If you click on one of those "GET" spans in the trace view, a side panel will open. Search for "url.path" in the attributes.

The way one can get low cardinality information about the URL path is if the app uses a web framework and defines "routes". So, for example, if your application is using a framework like Express or Fastify, e.g.:

```js
const app = express();
app.get('/ping', (_req, res) => {
    res.send('pong');
});
app.get('/hi/:name', (req, res) => {
    res.send(`Hi, ${req.params?.name || 'buddy'}.`);
});

```

Then OpenTelemetry instrumentation for those frameworks will automatically get the route into the span name. The result would be that you see span names like `GET /hi/:name` or somelike that depending on the app's configured routes.
