> ## 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.

# Aangepaste instrumentatie voor Java

AppSignal is compatibel met OpenTelemetry-instrumentatiepakketten.
Sommige van deze instrumentatiepakketten vereisen mogelijk aanvullende configuratie.

Deze instrumentaties bevatten niet altijd alle informatie die u nodig hebt om problemen te debuggen.
Voor fijnmazigere rapportage kunt u aangepaste instrumentatie toevoegen.

Wij ondersteunen [OpenTelemetry-tracing][manual] zoals beschreven in de OpenTelemetry-documentatie.
U kunt meer gegevens aan een span toevoegen met behulp van OpenTelemetry-span-attributen.

Er zijn ook AppSignal-span-attributen waarmee u kunt veranderen hoe traces worden gegroepeerd, en attributen waarmee u gevoelige gegevens kunt uitfilteren.

## Een nieuwe span aanmaken

Maak een nieuwe span aan met de tracer van de globale tracer provider.

<CodeGroup>
  ```java Java theme={null}
  import io.opentelemetry.api.GlobalOpenTelemetry;
  import io.opentelemetry.api.trace.Span;
  import io.opentelemetry.api.trace.Tracer;
  import io.opentelemetry.context.Scope;

  public void someFunction() {
      // Get OpenTelemetry tracer
      Tracer tracer = GlobalOpenTelemetry.getTracer("my-app");

      // Create a new span
      Span span = tracer.spanBuilder("My span").startSpan();

      // Set attributes
      span.setAttribute("operation.name", "handle_request");

      // Your application logic here

      // Close the span
      span.end();
  }
  ```
</CodeGroup>

*Opmerking: in deze voorbeelden gebruiken wij de globale tracer provider die door OpenTelemetry is ingesteld. Voor betere testbaarheid wilt u de tracer mogelijk in uw klassen injecteren.*

## De huidige span ophalen

U kunt ook de huidige actieve span ophalen:

<CodeGroup>
  ```java Java theme={null}
  import io.opentelemetry.api.trace.Span;

  public void someFunction() {
      Span span = Span.current();

      // Set attributes on the current span
      span.setAttribute("user.id", userId);
      span.setAttribute("operation.name", "database_query");
  }
  ```
</CodeGroup>

*Opmerking: dit retourneert alleen een span als er al een actief is.*

Meer manieren om spans aan te maken en op te halen, vindt u op de pagina over [OpenTelemetry-instrumentatie voor Java][manual].

## AppSignal-attributen

Zodra u een span hebt aangemaakt of opgehaald, kunt u bepaalde AppSignal-specifieke attributen instellen om aan te passen hoe de gegevens in AppSignal binnenkomen.

<CodeGroup>
  ```java Java theme={null}
  Span span = // Create a new span or fetch the current span
  span.setAttribute("attribute_name", "attribute_value");
  ```
</CodeGroup>

Zie onze handleidingen voor meer informatie over welke aangepaste AppSignal-attributen worden ondersteund:

* [Tagging-handleiding](/guides/tagging)
* [Handleiding voor het aanpassen van gegevens](/guides/custom-data)

[manual]: https://opentelemetry.io/docs/languages/java/api/
