> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenTelemetry-instrumentatie-attributen

AppSignal ondersteunt meerdere OpenTelemetry-taalintegraties. Het datamodel sluit echter niet altijd perfect aan, wat van invloed kan zijn op hoe OpenTelemetry-gegevens in de AppSignal-interface worden weergegeven. Door de attributen die op deze pagina worden vermeld te gebruiken, kunt u de weergave van trace- en span-gegevens aanpassen.

<Warning>
  🔐 Stuur geen <strong>Persoonlijk Identificeerbare Informatie (PII)</strong> naar AppSignal. Filter PII (bijv. namen, e-mailadressen) en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator. <br /> <br /> Voor <strong>onder HIPAA vallende entiteiten</strong> vindt u meer informatie over het ondertekenen van een Business Associate Agreement (BAA) in onze <a href="/support/business-add-ons">documentatie over Business Add-Ons</a>.
</Warning>

## Toegang tot een span

<Tabs>
  <Tab title="Python">
    Wanneer u de trace of span aanpast, importeer dan eerst de OpenTelemetry trace-module in het bestand waarin u de gerapporteerde tracegegevens wilt aanpassen.

    <CodeGroup>
      ```python Python theme={null}
      from opentelemetry import trace
      ```
    </CodeGroup>

    Maak met die trace-module een nieuwe span aan:

    <CodeGroup>
      ```python Python theme={null}
      tracer = trace.get_tracer(__name__)
      with tracer.start_as_current_span("Span name") as span:
          # Stel attribuutwaarden in
          span.set_attribute("attribute name", "attribute value")
      ```
    </CodeGroup>

    Of haal de huidige actieve span op:

    <CodeGroup>
      ```python Python theme={null}
      span = trace.get_current_span()
      # Stel attribuutwaarden in
      span.set_attribute("attribute name", "attribute value")
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Go (golang)">
    Wanneer u de trace of span aanpast, importeer dan eerst de OpenTelemetry trace-module in het bestand waarin u de gerapporteerde tracegegevens wilt aanpassen.

    <CodeGroup>
      ```go Go theme={null}
      import (
      	"go.opentelemetry.io/otel"
      	"go.opentelemetry.io/otel/attribute"
      	"go.opentelemetry.io/otel/trace"
      )
      ```
    </CodeGroup>

    Maak met die trace-module een nieuwe span aan:

    <CodeGroup>
      ```go Go theme={null}
      var tracer = otel.Tracer("my-tracer-name")

      func httpHandler(w http.ResponseWriter, r *http.Request) {
      	ctx, span := tracer.Start(r.Context(), "hello-span")
      	defer span.End()

      	// Stel attributen in
      }
      ```
    </CodeGroup>

    *Opmerking: In deze voorbeelden vertrouwen we op de context van het HTTP-request, gegeven door `r.Context()`.*
    *Het ontvangen van de context kan in uw applicatie anders zijn.*

    Of haal de huidige actieve span op:

    <CodeGroup>
      ```go Go theme={null}
      func httpHandler(w http.ResponseWriter, r *http.Request) {
      	ctx := r.Context()
          span := trace.SpanFromContext(ctx)

      	// Stel attributen in
      }
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## AppSignal-attributen

### Namespace

<Tip>
  Dit attribuut is van toepassing op de volledige trace. Het kan worden ingesteld op een child-span en hoeft niet op de bovenste parent-span te worden ingesteld. Dit attribuut kan slechts één keer per trace worden ingesteld. Als het meerdere keren wordt ingesteld, wordt alleen het attribuut van één span in de trace toegepast.
</Tip>

* Attribuutnaam: `appsignal.namespace`
* Waardetype: `String`

[Groepeer traces per namespace](/application/namespaces) voor een betere organisatie in de AppSignal-interface.

Namespaces worden gegroepeerd per OpenTelemetry-servicenaam met het formaat `<Service name>/<Namespace>`, bijv. "Web server/admin" of "Background worker/billing". Met dit attribuut kunt u alleen het namespace-deel configureren. De standaard namespace voor alle traces is `<Service name>/default`.

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.namespace", "admin")
  ```

  ```go Go theme={null}
  span.SetAttributes(attribute.String("appsignal.namespace", "admin"))
  ```
</CodeGroup>

### Root-actienaam

<Tip>
  Dit attribuut is van toepassing op de volledige trace. Het kan worden ingesteld op een child-span en hoeft niet op de bovenste parent-span te worden ingesteld. Dit attribuut kan slechts één keer per trace worden ingesteld. Als het meerdere keren wordt ingesteld, wordt alleen het attribuut van één span in de trace toegepast.
</Tip>

* Attribuutnaam: `appsignal.action_name`
* Waardetype: `String`

Stel de actienaam van de trace in die wordt gebruikt om incidenten aan te maken en tracing te groeperen op AppSignal.com. Dit overschrijft elke automatische mapping die door de AppSignal-ondersteuning voor specifieke instrumentatie wordt uitgevoerd. Het is handig voor traces die niet door ondersteunde libraries worden aangemaakt. Als uw trace samen met andere niet-benoemde of slecht gegroepeerde traces wordt gegroepeerd, ontbreekt mogelijk dit attribuut.

Wij streven ernaar onze automatische groepering in de loop van de tijd te verbeteren, dus [laat het ons weten](mailto:support@appsignal.com?subject=OpenTelemetry%20feedback) wanneer u merkt dat dit attribuut nodig is.

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.action_name", "ControllerName#action")
  ```

  ```go Go theme={null}
  span.SetAttributes(attribute.String("appsignal.action_name", "ControllerName#action"))
  ```
</CodeGroup>

### Tags

* Attribuutnaam: `appsignal.tag.<tag_name>`
* Waardetype: `String`

[Tag traces](/application/tagging) om ze op de detailpagina's van traces naar voren te brengen en traces in de AppSignal-interface te filteren. Er kunnen meerdere tags worden ingesteld op spans in een trace. Tags kunnen worden toegevoegd aan elke span in een trace op elk niveau van de trace.

U kunt [link-templates](https://docs.appsignal.com/application/link-templates.html) gebruiken om tags te koppelen aan een specifieke URL, zoals een gebruikersprofiel of beheerpagina.

De sleutel van het tag-attribuut bestaat uit twee delen: het voorvoegsel `appsignal.tag` en de tag-sleutel. Voor de tag `user_id` wordt dit `appsignal.tag.user_id` als attribuutsleutel.

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.tag.<tag_name>", "string") # Voorbeeldformaat
  span.set_attribute("appsignal.tag.user_id", user.id)
  ```

  ```go Go theme={null}
  span.SetAttributes(attribute.String("appsignal.tag.<tag_name>", "string")) // Voorbeeldformaat
  span.SetAttributes(attribute.String("appsignal.tag.user_id", user.id))
  ```
</CodeGroup>

### Functieparameters

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `appsignal.function.parameters`
* Waardetype: JSON-geserialiseerd object

Rapporteer de parameters van een functieaanroep met dit attribuut.
Gebruik dit om parameters in te stellen die aan een achtergrondtaak, een taak of een functieaanroep worden meegegeven die u wilt bijhouden.

De waarden die in dit span-attribuut worden ingesteld, kunnen worden gefilterd met de [configuratieoptie `appsignal.config.filter_function_parameters`](/opentelemetry/configuration/options#filter-function-parameters).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.function.parameters", json.dumps({
      "param1": "value1",
      "param2": "value2"
  }))
  ```

  ```go Go theme={null}
  import (
  	"encoding/json"
  )

  params := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(params)
  span.SetAttributes(attribute.String("appsignal.function.parameters", string(json)))
  ```
</CodeGroup>

### Response-headers

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `http.response.header.<key>`
* Waardetype: Array van Strings

Rapporteer de headers van de response met behulp van een OpenTelemetry span-attribuut.
Dit span-attribuut is ook gedocumenteerd in de [OpenTelemetry HTTP span-specificatie](https://opentelemetry.io/docs/specs/semconv/http/http-spans/).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("http.response.header.content-type", ["application/json"])
  span.set_attribute("http.response.header.custom-header", ["abc", "def"])
  ```

  ```go Go theme={null}
  span.SetAttributes(attribute.StringSlice("http.response.header.content-type", []string{"application/json"}))
  span.SetAttributes(attribute.StringSlice("http.response.header.custom-header", []string{"abc", "def"}))
  ```
</CodeGroup>

### Request-headers

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `http.request.header.<key>`
* Waardetype: Array van Strings

Rapporteer de headers van het request met behulp van een OpenTelemetry span-attribuut.
Dit span-attribuut is ook gedocumenteerd in de [OpenTelemetry HTTP span-specificatie](https://opentelemetry.io/docs/specs/semconv/http/http-spans/).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("http.request.header.content-type", ["application/json"])
  span.set_attribute("http.request.header.custom-header", ["abc", "def"])
  ```

  ```go Go theme={null}
  span.SetAttributes(attribute.StringSlice("http.request.header.content-type", []string{"application/json"}))
  span.SetAttributes(attribute.StringSlice("http.request.header.custom-header"), []string{"abc", "def"})
  ```
</CodeGroup>

### Request query-parameters

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `appsignal.request.query_parameters`
* Waardetype: JSON-geserialiseerd object

Rapporteer de query-parameters van een inkomend HTTP-request met dit attribuut.

De waarden die in dit span-attribuut worden ingesteld, kunnen worden gefilterd met de [configuratieoptie `appsignal.config.filter_request_query_parameters`](/opentelemetry/configuration/options#filter-request-query-parameters).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.request.query_parameters", json.dumps({
      "category": "shoes",
      "filter": "color:blue"
  }))
  ```

  ```go Go theme={null}
  import (
  	"encoding/json"

  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )

  params := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(params)
  span.SetAttributes(attribute.String("appsignal.request.query_parameters", string(json)))
  ```
</CodeGroup>

### Request-payload

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `appsignal.request.payload`
* Waardetype: JSON-geserialiseerd object

Rapporteer de payload van een inkomend HTTP-request met dit attribuut.

De waarden die in dit span-attribuut worden ingesteld, kunnen worden gefilterd met de [configuratieoptie `appsignal.config.filter_request_payload`](/opentelemetry/configuration/options#filter-request-payload).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.request.payload", json.dumps({
      "title": "My new blog post"
      "body": "Lorem ipsum"
  }))
  ```

  ```go Go theme={null}
  import (
  	"encoding/json"

  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )

  payload := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(payload)
  span.SetAttributes(attribute.String("appsignal.request.payload", string(json)))
  ```
</CodeGroup>

### Request-sessiegegevens

<Tip>
  De waarde van dit attribuut moet worden geserialiseerd naar een JSON-string. Een Hash of object uit de integratie-taal wordt niet rechtstreeks ondersteund en wordt stilzwijgend genegeerd.
</Tip>

* Attribuutnaam: `appsignal.request.session_data`
* Waardetype: JSON-geserialiseerd object

Rapporteer de sessiegegevens van een inkomend HTTP-request met dit attribuut.

De waarden die in dit span-attribuut worden ingesteld, kunnen worden gefilterd met de [configuratieoptie `appsignal.config.filter_request_session_data`](/opentelemetry/configuration/options#filter-request-session-data).

<CodeGroup>
  ```python Python theme={null}
  span.set_attribute("appsignal.request.session_data", json.dumps({
      "user_id": 123
      "theme": "dark"
  }))
  ```

  ```go Go theme={null}
  import (
  	"encoding/json"

  	"go.opentelemetry.io/otel/attribute"
  	"go.opentelemetry.io/otel/trace"
  )

  session_data := map[string]interface{}{
  	"param1": "value1",
  	"param2": "value2",
  	"nested": map[string]interface{}{
  		"param3": "value3",
  		"param4": "value4",
  	},
  }
  json, _ := json.Marshal(session_data)
  span.SetAttributes(attribute.String("appsignal.request.session_data", string(json)))
  ```
</CodeGroup>
