Tracing
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Tracing

En savoir plus sur le tracing avec Datadog et la terminologie APM.

L’API de tracing est une API d’Agent plutôt qu’une API de service. Envoyez vos traces à l’endpoint local http://localhost:8126/v0.3/traces afin que votre Agent puisse ensuite les transférer à Datadog.

Envoyer des traces

PUT http://localhost:8126/v0.3/tracesNot supported in the EU regionNot supported in the US region

Présentation

L’APM de Datadog vous permet de recueillir des métriques de performance en traçant votre code pour identifier les éléments lents ou inefficaces de votre application.

Les données de tracing sont envoyées à l’Agent Datadog via une API HTTP. Nous proposons plusieurs bibliothèques officielles afin de simplifier l’envoi de métriques à l’Agent Datadog. Toutefois, vous pouvez interagir directement avec l’API pour instrumenter les applications qui ne peuvent pas utiliser les bibliothèques ou qui sont écrites dans des langages qui ne possèdent pas encore de bibliothèque de tracing officielle.

Requête

Body Data (required)

Les traces peuvent être envoyées sous forme de tableau de traces :

[ trace1, trace2, trace3 ]

où chaque trace est un tableau de spans :

trace1 = [ span, span2, span3 ]

et où chaque span est un dictionnaire avec un trace_id, span_id, resource, etc.

En savoir plus sur la terminologie de l’APM et du tracing distribué

Remarque : chaque span dans une trace doit utiliser le même trace_id. Cependant, trace_id et span_id doivent avoir des valeurs différentes.

Expand All

Champ

Type

Description

duration

int64

The duration of the request in nanoseconds.

error

int32

Set this value to 1 to indicate if an error occurred.

If an error occurs, you should pass additional information, such as the error message, type and stack information in the meta property.

meta

object

A set of key-value metadata. Keys and values must be strings.

<any-key>

string

Additional properties for key-value metadata.

metrics

object

A set of key-value metadata. Keys must be strings and values must be 64-bit floating point numbers.

<any-key>

double

Additional properties for key-value metrics.

name

string

The span name. The span name must not be longer than 100 characters.

parent_id

int64

The span integer ID of the parent span.

resource

string

The resource you are tracing. The resource name must not be longer than 5000 characters.

service

string

The service you are tracing. The service name must not be longer than 100 characters.

span_id

int64

The span integer (64-bit unsigned) ID.

start

int64

The start time of the request in nanoseconds from the UNIX epoch.

trace_id

int64

The unique integer (64-bit unsigned) ID of the trace containing this span.

type

enum

The type of request. Allowed enum values: web,db,cache,custom

[
  [
    {
      "duration": 12345,
      "error": "integer",
      "meta": {
        "<any-key>": "string"
      },
      "metrics": {
        "<any-key>": "number"
      },
      "name": "span_name",
      "parent_id": "integer",
      "resource": "/home",
      "service": "service_name",
      "span_id": 987654321,
      "start": 0,
      "trace_id": 123456789,
      "type": "web"
    }
  ]
]

Réponse

OK

Exemple de code


                                        # Curl command
curl -X PUT "http://localhost:8126/v0.3/traces" \
-H "Content-Type: application/json" \
-d @- << EOF
[
  [
    {
      "duration": 12345,
      "name": "span_name",
      "resource": "/home",
      "service": "service_name",
      "span_id": 987654321,
      "start": 0,
      "trace_id": 123456789
    }
  ]
]
EOF