Passer au contenu principal
Vous pouvez utiliser le tagging pour fournir un contexte supplémentaire sur les erreurs et les incidents de performance. Le tagging peut aider à ajouter des informations qui ne font pas déjà partie d’une requête, telles que les données de session, les en-têtes, les données d’environnement ou les paramètres. Les tags peuvent également être utilisés pour filtrer les échantillons dans un incident afin de trouver toutes les erreurs pour un utilisateur spécifique ou les pages lentes pour une locale particulière. Vous pouvez définir des tags partout où la transaction ou le span actuel est accessible. Nous recommandons de l’appeler avant l’exécution du code de votre application dans une requête, comme dans un callback. Vous pouvez voir quels tags s’appliquent à un échantillon sur la page d’incident Error and Performance. À l’aide de Link Templates, il est possible d’ajouter des liens vers votre application avec des données de tag, telles que le panneau d’administration pour l’utilisateur connecté. Vous pouvez voir cela en pratique dans la capture d’écran ci-dessous, avec les tags Link 1 et Link 2. Tag a request
🔐 N’envoyez pas d’informations personnelles identifiables (PII) à AppSignal. Filtrez les PII (par exemple, noms, e-mails) et utilisez un identifiant, un hash ou un identifiant pseudonymisé à la place.

Utilisez les Link Templates pour les relier dans votre application.

Ruby

Avec le gem AppSignal for Ruby, utilisez les méthodes d’assistance Appsignal.add_tags pour ajouter des tags aux échantillons d’erreur et de performance. Sur la version 3 et antérieure du gem Ruby, utilisez l’assistant Appsignal.set_tags. Vous pouvez utiliser Appsignal.add_tags partout où une transaction active est accessible, nous recommandons de l’appeler avant l’exécution du code de votre application dans la requête, comme dans un before_action avec Rails.
before_action do
  Appsignal.add_tags(
    :user_id => current_user.id,
    :stripe_customer_id => stripe_customer_id,
    :locale => I18n.locale,
    :default_locale => I18n.default_locale
  )
end

Tags par défaut

Vous pouvez configurer des tags qui seront ajoutés à toutes les transactions en utilisant l’option de configuration default_tags. Ces tags sont appliqués automatiquement à chaque transaction. Les tags spécifiques à une transaction définis avec Appsignal.add_tags remplaceront les tags par défaut ayant la même clé.
Appsignal.configure do |config|
  config.default_tags = {
    "region" => "europe",
    "shard" => "shard-1"
  }
end

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String ou un Symbol.
  • La valeur taguée doit être une String, un Symbol, un Integer ou un Boolean (true/false).
    • Les valeurs booléennes sont prises en charge dans le gem Ruby 3.11 et versions ultérieures.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs de hash imbriquées ne sont pas prises en charge pour les tags, veuillez utiliser des données personnalisées à la place.
# Unsupported: hash value type is not supported
Appsignal.add_tags(
  :i18n => {
    :locale => I18n.locale,
    :default_locale => I18n.default_locale
  }
)

Elixir

Utilisez la fonction Appsignal.Span.set_sample_data pour fournir un contexte supplémentaire sur les échantillons d’erreur et de performance. Utilisez la clé d’échantillon "tags" pour la fonction afin d’ajouter des tags au span.
Appsignal.Span.set_sample_data(
  Appsignal.Tracer.root_span,
  "tags",
  %{
    locale: "en",
    user_id: user_id,
    stripe_customer_id: stripe_customer_id,
    locale: locale,
    default_locale: default_locale
  }
)

Le dernier appel prévaut

L’assistant set_sample_data peut être appelé plusieurs fois, mais seule la dernière valeur sera conservée. Lorsque le code ci-dessous est exécuté :
Appsignal.Span.set_sample_data(Appsignal.Tracer.root_span, "tags", %{locale: "en"})
Appsignal.Span.set_sample_data(Appsignal.Tracer.root_span, "tags", %{user: "bob"})
Appsignal.Span.set_sample_data(Appsignal.Tracer.root_span, "tags", %{locale: "de"})
Cela aboutira au stockage des tags suivants :
%{
  locale: "de"
}

Définir des données d’échantillon sur un span

Pour ajouter des données d’échantillon à un span dès sa création, ajoutez un custom_on_create_fun :
defmodule MyApp.Appsignal do
  def custom_on_create_fun(_span) do
    Appsignal.Span.set_sample_data(Appsignal.Tracer.root_span, "tags", %{"locale": "en"})
  end
end
Ensuite, ajoutez-le à la configuration de votre application :
# config/config.exs
config :appsignal, custom_on_create_fun: &MyApp.Appsignal.custom_on_create_fun/1
La fonction custom_on_create_fun nécessite AppSignal for Elixir version 2.8.3 ou supérieure.

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String ou un Atom.
  • La valeur taguée doit être une String, un Atom ou un Integer.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs de map imbriquées ne sont pas prises en charge pour les tags, veuillez utiliser des données personnalisées à la place.
# Unsupported: map value type is not supported
Appsignal.Span.set_sample_data(
  Appsignal.Tracer.root_span,
  "tags",
  %{
    i18n: %{
      locale: "en_GB",
      default_locale: "en_US"
    }
  }
)

Node.js

Importez la fonction d’assistance setTag pour ajouter des tags aux spans pour les échantillons d’erreur et de performance.
import { setTag } from "@appsignal/nodejs";

setTag("user_id", user_id);
setTag("stripe_customer_id", stripe_customer_id);
setTag("locale", locale);
setTag("default_locale", default_locale);

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String.
  • La valeur taguée doit être une String, un Number ou un Boolean.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs d’objet imbriquées ne sont pas prises en charge pour les tags, veuillez utiliser la fonction d’assistance setCustomData à la place.
const tracer = appsignal.tracer();
const span = tracer.currentSpan();

# Unsupported: object value type is not supported
span.set("i18n", { locale: "en_GB", default_locale: "en_US" });

Python

Importez la méthode d’assistance set_tag pour ajouter des tags aux spans pour les échantillons d’erreur et de performance.
from appsignal import set_tag

set_tag("user_id", user_id)
set_tag("stripe_customer_id", stripe_customer_id)
set_tag("locale", locale)
set_tag("default_locale", default_locale)

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String.
  • La valeur taguée doit être une String, un Integer, un Float ou un Boolean.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs d’objet imbriquées ne sont pas prises en charge pour les tags, veuillez utiliser la fonction d’assistance set_custom_data à la place.

Go

Dans une application Go, pour ajouter un tag AppSignal à un span sur une trace, récupérez d’abord le span actif ou créez un nouveau span comme décrit sur notre page d’instrumentation personnalisée Go. Ensuite, définissez un attribut sur le span en utilisant l’assistant d’attribut qui correspond au type de la valeur du tag, voir également les limitations de tag ci-dessous. Le nom de l’attribut du span a le format suivant : appsignal.tag.<tag name>. Remplacez <tag name> par le nom du tag.
// Example format
span.SetAttributes(attribute.String("appsignal.tag.<tag_name>", "string"))

// Supported types
span.SetAttributes(attribute.String("appsignal.tag.my_tag_string", "tag value"))
span.SetAttributes(attribute.StringSlice("appsignal.tag.my_tag_int64", []string{"abc", "def"}))
span.SetAttributes(attribute.Bool("appsignal.tag.my_tag_bool_true", true))
span.SetAttributes(attribute.Bool("appsignal.tag.my_tag_bool_false", false))
span.SetAttributes(attribute.BoolSlice("appsignal.tag.my_tag_bool_slice", []bool{true, false}))
span.SetAttributes(attribute.Float64("appsignal.tag.my_tag_float64", 12.34))
span.SetAttributes(attribute.Float64Slice("appsignal.tag.my_tag_float64_slice", []float64{12.34, 56.78}))
span.SetAttributes(attribute.Int("appsignal.tag.my_tag_int", 1234))
span.SetAttributes(attribute.IntSlice("appsignal.tag.my_tag_int", []int{1234, 5678}))
span.SetAttributes(attribute.Int64("appsignal.tag.my_tag_int64", 1234))
span.SetAttributes(attribute.Int64Slice("appsignal.tag.my_tag_int64_slice", []int64{1234, 5678}))

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String.
  • La valeur taguée doit être une String, un Integer, un Float, un Boolean, ou une slice de ces types.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs de type tableau sont aplaties en valeurs séparées par des virgules.
  • Les valeurs d’objet imbriquées (maps) ne sont pas prises en charge pour les tags.

Java

Dans une application Java, pour ajouter un tag AppSignal à un span sur une trace, récupérez d’abord le span actif ou créez un nouveau span comme décrit sur notre page d’instrumentation personnalisée Java. Ensuite, définissez un attribut sur le span en utilisant la méthode setAttribute. Le nom de l’attribut du span a le format suivant : appsignal.tag.<tag name>. Remplacez <tag name> par le nom du tag.
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.common.AttributeKey;

// Get the current span
Span span = Span.current();

// Example format
span.setAttribute("appsignal.tag.<tag_name>", "string");

// Set tags as span attributes
span.setAttribute("appsignal.tag.my_tag_string", "tag value");
span.setAttribute(AttributeKey.stringArrayKey("appsignal.tag.my_tag_string_array"), Arrays.asList("abc", "def"));
span.setAttribute("appsignal.tag.my_tag_bool_true", true);
span.setAttribute("appsignal.tag.my_tag_bool_false", false);
span.setAttribute(AttributeKey.booleanArrayKey("appsignal.tag.my_tag_bool_array"), Arrays.asList(true, false));
span.setAttribute("appsignal.tag.my_tag_float64", 12.34);
span.setAttribute(AttributeKey.doubleArrayKey("appsignal.tag.my_tag_float64_array"), Arrays.asList(12.34, 56.78));
span.setAttribute("appsignal.tag.my_tag_int", 1234);
span.setAttribute(AttributeKey.longArrayKey("appsignal.tag.my_tag_int_array"), Arrays.asList(1234L, 5678L));
span.setAttribute("appsignal.tag.my_tag_int64", 1234);
span.setAttribute(AttributeKey.longArrayKey("appsignal.tag.my_tag_int64_array"), Arrays.asList(1234L, 5678L));

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String.
  • La valeur taguée doit être une String, un Integer, un Long, un Double ou un Boolean, ou une liste de ces valeurs.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs de type tableau sont aplaties en valeurs séparées par des virgules.
  • Les valeurs d’objet imbriquées (maps) ne sont pas prises en charge pour les tags.

PHP

Dans les applications PHP, pour ajouter un tag AppSignal à un span sur une trace, utilisez la méthode d’assistance Appsignal::addTags().
<?php

// Add tags to the current span
Appsignal::addTags([
    'my_tag_string' => 'tag value',
    'my_tag_string_slice' => ['abc', 'def'],
    'my_tag_bool_true' => true,
    'my_tag_bool_false' => false,
    'my_tag_bool_slice' => [true, false],
    'my_tag_float64' => 12.34,
    'my_tag_float64_slice' => [12.34, 56.78],
    'my_tag_int' => 1234,
    'my_tag_int_slice' => [1234, 5678],
    'my_tag_int64' => 1234,
    'my_tag_int64_slice' => [1234, 5678],
]);

Limitations

Les tags qui ne respectent pas ces limitations sont supprimés sans avertissement.
  • La clé du tag doit être une String.
  • La valeur taguée doit être une String, un Integer, un Float ou un Boolean, ou une slice de ces valeurs.
  • La longueur de la valeur du tag doit être inférieure à 256 caractères.
  • Les valeurs de type tableau sont aplaties en valeurs séparées par des virgules.
  • Les valeurs d’objet imbriquées (maps) ne sont pas prises en charge pour les tags.