Naar hoofdinhoud gaan
U kunt tagging gebruiken om extra context te bieden bij fouten en prestatie-incidenten. Tagging kan helpen om informatie toe te voegen die nog geen onderdeel is van een request, zoals de sessiegegevens, headers, omgevingsgegevens of parameters. Tags kunnen ook worden gebruikt om te filteren op samples binnen een incident om alle fouten voor een specifieke gebruiker of trage pagina’s voor een bepaalde locale te vinden. U kunt tags overal instellen waar de huidige transactie of span toegankelijk is. We raden aan het aan te roepen voordat uw applicatiecode in een request wordt uitgevoerd, zoals in een callback. U kunt op de Error- en Performance incident-pagina zien welke tags op een sample van toepassing zijn. Met behulp van Link Templates is het mogelijk om links naar uw applicatie toe te voegen met tag-gegevens, zoals het beheerderspaneel voor de aangemelde gebruiker. U kunt dit in de praktijk zien in de onderstaande screenshot, met de Link 1 en Link 2 tags. Tag a request
🔐 Stuur geen Persoonlijk Identificeerbare Informatie (PII) naar AppSignal. Filter PII (bijv. namen, e-mailadressen) en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator.

Gebruik Link Templates om ze in uw app terug te koppelen.

Ruby

Met de AppSignal voor Ruby gem gebruikt u de Appsignal.add_tags helper-methoden om tags toe te voegen aan fout- en prestatie-samples. Op Ruby gem-versie 3 en ouder gebruikt u de Appsignal.set_tags helper. U kunt Appsignal.add_tags overal gebruiken waar een actieve transactie toegankelijk is. We raden aan het aan te roepen voordat uw applicatiecode in het request wordt uitgevoerd, zoals in een before_action bij gebruik van 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

Standaardtags

U kunt tags configureren die aan alle transacties worden toegevoegd met behulp van de default_tags configuratieoptie. Deze tags worden automatisch toegepast op elke transactie. Transactiespecifieke tags die zijn ingesteld met Appsignal.add_tags overschrijven standaardtags met dezelfde sleutel.
Appsignal.configure do |config|
  config.default_tags = {
    "region" => "europe",
    "shard" => "shard-1"
  }
end

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String of Symbol zijn.
  • De tagwaarde moet een String, Symbol, Integer of Boolean (true/false) zijn.
    • Boolean-waarden worden ondersteund in Ruby gem 3.11 en nieuwer.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Geneste hash-waarden worden niet ondersteund voor tags, gebruik in plaats daarvan aangepaste gegevens.
# Unsupported: hash value type is not supported
Appsignal.add_tags(
  :i18n => {
    :locale => I18n.locale,
    :default_locale => I18n.default_locale
  }
)

Elixir

Gebruik de Appsignal.Span.set_sample_data functie om extra context te bieden bij fout- en prestatie-samples. Gebruik de "tags" sample-sleutel voor de functie om tags aan de span toe te voegen.
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
  }
)

Laatste aanroep is leidend

De set_sample_data helper kan meerdere keren worden aangeroepen, maar alleen de laatste waarde wordt behouden. Wanneer de onderstaande code wordt uitgevoerd:
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"})
resulteert dit in de volgende opgeslagen tags:
%{
  locale: "de"
}

Sample-data instellen op een span

Om sample-data aan een span toe te voegen zodra deze wordt aangemaakt, voegt u een custom_on_create_fun toe:
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
Voeg deze vervolgens toe aan de configuratie van uw app:
# config/config.exs
config :appsignal, custom_on_create_fun: &MyApp.Appsignal.custom_on_create_fun/1
De custom_on_create_fun vereist AppSignal voor Elixir versie 2.8.3 of hoger.

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String of Atom zijn.
  • De tagwaarde moet een String, Atom of Integer zijn.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Geneste map-waarden worden niet ondersteund voor tags, gebruik in plaats daarvan aangepaste gegevens.
# 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

Importeer de setTag helper-functie om tags toe te voegen aan spans voor fout- en prestatie-samples.
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);

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String zijn.
  • De tagwaarde moet een String, Number of Boolean zijn.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Geneste object-waarden worden niet ondersteund voor tags, gebruik in plaats daarvan de setCustomData helper-functie.
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

Importeer de set_tag helper-methode om tags toe te voegen aan spans voor fout- en prestatie-samples.
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)

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String zijn.
  • De tagwaarde moet een String, Integer, Float of Boolean zijn.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Geneste object-waarden worden niet ondersteund voor tags, gebruik in plaats daarvan de set_custom_data helper-functie.

Go

In een Go-app, om een AppSignal-tag toe te voegen aan een span op een trace, haalt u eerst de actieve span op of maakt u een nieuwe span aan zoals beschreven op onze Go custom instrumentation-pagina. Stel vervolgens een attribuut in op de span met behulp van de attribuut-helper die overeenkomt met het type van de tagwaarde, zie ook de tag-beperkingen hieronder. De span-attribuutnaam heeft het volgende formaat: appsignal.tag.<tag name>. Vervang <tag name> door de naam van de 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}))

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String zijn.
  • De tagwaarde moet een String, Integer, Float, Boolean of een slice van die typen zijn.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Array-waarden worden afgevlakt naar door komma’s gescheiden waarden.
  • Geneste object-waarden (maps) worden niet ondersteund voor tags.

Java

In een Java-app, om een AppSignal-tag toe te voegen aan een span op een trace, haalt u eerst de actieve span op of maakt u een nieuwe span aan zoals beschreven op onze Java custom instrumentation-pagina. Stel vervolgens een attribuut in op de span met behulp van de setAttribute methode. De span-attribuutnaam heeft het volgende formaat: appsignal.tag.<tag name>. Vervang <tag name> door de naam van de 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));

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String zijn.
  • De tagwaarde moet een String, Integer, Long, Double of Boolean zijn, of een lijst van deze waarden.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Array-waarden worden afgevlakt naar door komma’s gescheiden waarden.
  • Geneste object-waarden (maps) worden niet ondersteund voor tags.

PHP

In PHP-applicaties, om een AppSignal-tag toe te voegen aan een span op een trace, gebruikt u de Appsignal::addTags() helper-methode.
<?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],
]);

Beperkingen

Tags die niet aan deze beperkingen voldoen worden zonder waarschuwing verwijderd.
  • De tagsleutel moet een String zijn.
  • De tagwaarde moet een String, Integer, Float of Boolean zijn, of een slice van deze waarden.
  • De lengte van de tagwaarde moet minder dan 256 tekens zijn.
  • Array-waarden worden afgevlakt naar door komma’s gescheiden waarden.
  • Geneste object-waarden (maps) worden niet ondersteund voor tags.