# Node name APM

**URL:** <https://discuss.elastic.co/t/node-name-apm/384851>\
**Category:** APM\
**Tags:** open-telemetry\
**Created:** [February 2, 2026, 9:27am UTC](https://discuss.elastic.co/t/node-name-apm/384851 "2026-02-02T09:27:02Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Karol\_Niema](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/karol_niema/32/140599_2.png) [@Karol\_Niema](https://discuss.elastic.co/u/Karol_Niema)\
**Post date:** [February 2, 2026, 9:27am UTC](https://discuss.elastic.co/t/node-name-apm/384851/1 "2026-02-02T09:27:02Z")

</div>

Hi, I have problem with empty node name in services APM

**Kibana version** :  
9.0.3

**Elasticsearch version** :  
9.0.3

My stack

TIBCO BW send otel data to local EDOT collector, collector directly send data to elasticsearch

Is there any posibility to enrich data in otel.yml ?  
I would like also add environment to service

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/e/3/e3e2805c3746e485ea2c89d2bb6229b8fb727fcf.png)

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/b/5b76a04dd7effabed58161a2131fb8135c514aa0.png)

---

<div class="post-metadata">

**Author:** ![Musab\_Dogan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/musab_dogan/32/70691_2.png) [@Musab\_Dogan](https://discuss.elastic.co/u/Musab_Dogan)\
**Post date:** [February 2, 2026, 9:36am UTC](https://discuss.elastic.co/t/node-name-apm/384851/2 "2026-02-02T09:36:23Z")

</div>

Use the [resource processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/resourceprocessor) to set or apply changes to resource attributes when using the EDOT Collector.

```auto
processors:
  resource:
    attributes:
      - key: service.node.name
        value: "my-node-01" # Sets "Node Name"
        action: upsert
      - key: deployment.environment
        value: "production" # Sets "Environment"
        action: upsert

```

Not about actions.

### **Comparison of Actions**

| **Action** | **If Attribute is Missing** | **If Attribute Exists** |
| --- | --- | --- |
| **`insert`** | Adds the new value. | **Does nothing.** (Won't fix wrong values). |
| **`update`** | **Does nothing.** | Overwrites with the new value. |
| **`upsert`** | **Adds the new value.** | **Overwrites with the new value.** |

> **[Elastic Distribution of OpenTelemetry Collector (EDOT Collector) - Attributes...](https://www.elastic.co/docs/solutions/observability/apm/opentelemetry/attributes#elastic-distribution-of-opentelemetry-collector-edot-collector)**
>
> Use the resource processor to set or apply changes to resource attributes when using the EDOT Collector. | In OpenTelemetry, an attribute is a key-value pair. Attributes are similar to labels in that they add metadata to transactions, spans, and...

---

<div class="post-metadata">

**Author:** ![Karol\_Niema](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/karol_niema/32/140599_2.png) [@Karol\_Niema](https://discuss.elastic.co/u/Karol_Niema)\
**Post date:** [February 2, 2026, 10:25am UTC](https://discuss.elastic.co/t/node-name-apm/384851/3 "2026-02-02T10:25:39Z")

</div>

Forgot add otel config, Already added before

metadata

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/c/b/cb1924f899d9ab304a1cb41eed9e5596754ec8c5.png)

otel.yml

```auto
receivers:
  otlp/fromsdk:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

extensions:
  file_storage:
    directory: /opt/Elastic/Agent/data/otelcol

processors:
  batch:
    send_batch_size: 1000
    timeout: 10s

  resourcedetection:
    detectors: [env, system]

  attributes/dataset:
    actions:
      - key: event.dataset
        from_attribute: data_stream.dataset
        action: upsert

  attributes/env:
    actions:
      - key: deployment.environment
        value: PRD
        action: upsert
      - key: service.environment
        value: PRD
        action: upsert
      - key: environment
        value: PRD
        action: upsert

  attributes/nodename:
    actions:
      - key: service.node.name
        value: hostname
        action: upsert

  transform/spanname:
    trace_statements:
      - context: span
        statements:
          - set(name, attributes["ActivityName"])

  elastictrace: {}

exporters:
  elasticsearch/otel:
    endpoints:
      - "http://:9200"
      - "http://:9200"
      - "http://:9200"

    api_key: "=="

    mapping:
      mode: otel

    metrics_dynamic_index:
      enabled: true
    traces_dynamic_index:
      enabled: true

service:
  extensions: [file_storage]

  pipelines:
    traces:
      receivers: [otlp/fromsdk]
      processors: [resourcedetection, elastictrace, attributes/dataset, batch, attributes/env, attributes/nodename, transform/spanname]
      exporters: [elasticsearch/otel]

    metrics:
      receivers: [otlp/fromsdk]
      processors: [resourcedetection, attributes/dataset, batch]
      exporters: [elasticsearch/otel]

  telemetry:
    logs:
      level: debug

```

---

<div class="post-metadata">

**Author:** ![Sylvain\_Juge](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sylvain_juge/32/55521_2.png) [@Sylvain\_Juge](https://discuss.elastic.co/u/Sylvain_Juge)\
**Post date:** [February 3, 2026, 8:39am UTC](https://discuss.elastic.co/t/node-name-apm/384851/4 "2026-02-03T08:39:02Z")

</div>

Without changing anything on the collector, you should also be able to configure the “resource attributes” directly at the service level, those are shared for the whole service instance and are applied to all the captured signals.

If you configure otel SDK/instrumentation through [environment variables](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/#general-sdk-configuration) you can use `OTEL_RESOURCE_ATTRIBUTES` to set [`service.environment.name`](https://opentelemetry.io/docs/specs/semconv/resource/deployment-environment/) (which has been renamed recently in semconv from `service.environment`), same for `service.node.name`.

---

<div class="post-metadata">

**Author:** ![Karol\_Niema](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/karol_niema/32/140599_2.png) [@Karol\_Niema](https://discuss.elastic.co/u/Karol_Niema)\
**Post date:** [February 25, 2026, 1:30pm UTC](https://discuss.elastic.co/t/node-name-apm/384851/5 "2026-02-25T13:30:25Z")

</div>

> [@Sylvain\_Juge](#):
>
> `OTEL\_RESOURCE\_ATTRIBUTES

Nothing happend

current span document

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/1/8/184d80e15475d8e0afe68e7c2366ce235ebd566f.png)

but still

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/f/5/f5d20555d52a08350020628f072f3d24df785f67.png)
