site_id.
Migrer depuis les métriques GraphQL
La lecture des métriques via l’API GraphQL est obsolète. Si votre intégration lit des données de métriques via GraphQL, utilisez cette comparaison pour la migrer vers le point de terminaison des séries temporelles de l’API REST (V2).Interroger une série temporelle
Ce point de terminaison renvoie une ou plusieurs séries de points de données sur une plage temporelle. Utilisez-le pour dessiner des graphiques.Corps de la requête
Chaque entrée
select demande un champ de métrique. Fournissez un name de
métrique, un objet tags, et un field (voir champs). Les valeurs
de tags peuvent utiliser * comme caractère générique. Vous pouvez aussi
fournir une aggregation (voir agrégations) et une valeur
fill.
Les valeurs de fill sont ZERO (par défaut), PREVIOUS et NONE. Les
intégrations existantes peuvent aussi utiliser le champ optionnel
draw_null_as_zero. Si vous envoyez les deux champs, fill est prioritaire.
Utilisez des valeurs en majuscules pour field et aggregation. Le point de
terminaison des séries temporelles ne prend pas en charge group_by.
Réponse
Renvoie unTimeseries avec la resolution, from, to interrogées et un
tableau series. Chaque série possède un id, le name de la métrique, ses
tags, le field qu’elle représente, min et max sur la plage, et un
tableau data de points. Chaque point a un timestamp et une value
numérique.
Contrairement à l’API GraphQL de métriques, ce point de terminaison ne
nécessite pas de requête séparée pour les clés de métriques. Utilisez le
tableau series pour voir quelles combinaisons de tags et de champs ont
renvoyé des données. Si une requête risque d’atteindre les limites de
traitement, n’utilisez pas series.length
comme nombre total de clés de métriques correspondantes.
Interroger une liste
Ce point de terminaison renvoie des valeurs de métriques agrégées regroupées en lignes. Utilisez-le pour créer des tableaux.Corps de la requête
Un
ListSelector est comme un sélecteur de séries temporelles, avec un id
supplémentaire qui nomme la valeur du sélecteur dans l’objet data de chaque
ligne. Les entrées group_by sont Name (regrouper par nom de métrique) ou
Tag (regrouper par valeur de tag).
Utilisez des valeurs en majuscules pour field et aggregation. Les valeurs
de group_by, sensibles à la casse, sont Name et Tag. Si un sélecteur
utilise * pour un tag dans tags, ajoutez ce même tag à group_by sous la
forme {"Tag": "tag_name"}, sinon la requête échoue.
Réponse
Renvoie uneList avec la resolution, from, to interrogées et un
tableau rows. Chaque ligne a un id, un objet group des valeurs de tags
qui la définissent, et un objet data de valeurs agrégées indexées par id
de sélecteur (par exemple, { "mean": 42.5 }).
Paginer une liste
Ajoutez un objetpagination au corps de la requête pour lire la liste page
par page :
per_page: combien de lignes renvoyer par page.order:ASCouDESC. Les lignes sont triées par leurid.cursor:{ "id": null }pour la première page.
cursor.id défini
sur l’id de la dernière ligne. Répétez jusqu’à ce qu’une page renvoie moins
de lignes que per_page. Cette page est la dernière.
Une réponse paginée a la même forme que toute autre réponse de liste.
400 dont le champ error nomme le problème :
per_pageaccepte des valeurs de 1 à 1 000. Toute autre valeur renvoiepagination_invalid_per_page.- Une requête paginée lit jusqu’à 100 000 clés de métrique ou lignes sur
l’ensemble de ses pages. Au-delà de cette limite, elle renvoie
pagination_key_limit_exceededau lieu d’un résultat partiel. Réduisez les filtres de tags ou la plage temporelle et renvoyez la requête. - Pour les métriques personnalisées, chaque tag utilisant un caractère
générique
*doit aussi apparaître dansgroup_by. Lenamede la métrique ne peut pas contenir de caractère générique. Sinon, la requête renvoiepagination_requires_deterministic_grouping. - Les métriques d’événement
event_durationetevent_metric, ainsi que la métrique d’erreur d’incidentincident_error_count, ne peuvent pas encore être paginées. Elles renvoientpagination_unsupported_for_selector. Interrogez-les dans une requête séparée, sanspagination.
Lister les noms de métriques
Renvoie chaque nom de métrique disponible pour un site.Obtenir le type et les tags d’une métrique
Renvoie le type d’une métrique et les combinaisons de tags avec lesquelles elle peut être interrogée.metric_type (GAUGE, COUNTER ou MEASUREMENT) et
available_tags, un tableau où chaque entrée est une combinaison valide de
clés de tag.
Timing des moniteurs de disponibilité
La métriqueuptime_monitor_timing est une jauge qui enregistre la durée de
chaque phase d’une vérification de disponibilité, en millisecondes. Le tag
phase sélectionne la phase : dns, connect, tls, ttfb, download ou
total. Pour savoir ce que mesure chaque phase, consultez timing de la
requête. Interrogez la métrique
avec region, phase, et soit le name, soit l’id du moniteur.
phase se comporte différemment dans les deux points de terminaison de
requête :
- Dans une requête de série temporelle,
phaseaccepte le caractère générique*et renvoie une série par phase. - Dans une requête de liste, chaque sélecteur doit nommer une phase. Ajoutez
un sélecteur par phase souhaitée, et regroupez par
region,nameouid, pas parphase.
tls pour une URL HTTP simple et de download sans vérification
du corps.
Cette requête de liste renvoie le temps moyen par phase et par région pour un
moniteur :
Requêtes de métriques à forte cardinalité
Une requête de métrique a une forte cardinalité lorsqu’elle correspond à plus de séries que le point de terminaison ne peut en traiter. AppSignal stocke chaque combinaison de tags unique comme une clé de métrique distincte. Par exemple, chaque combinaison de valeursqueue et worker crée une clé de
métrique distincte.
Les limites de cette section s’appliquent aux métriques personnalisées et à
transaction_duration. Elles s’appliquent aussi à incident_error_count
lorsqu’une requête utilise un caractère générique pour incident_digest ou
revision. Elles ne s’appliquent pas aux autres métriques dans
l’implémentation V2 actuelle.
Chaque combinaison de clé de métrique et de champ compte comme une série. Par
exemple, demander MEAN et COUNT pour une même clé de métrique compte comme
deux séries.
Pour les métriques concernées, AppSignal limite le nombre de séries qu’il
traite avant de récupérer leurs données :
/api/v2/metrics/timeseriestraite jusqu’à 100 séries./api/v2/metrics/listtraite jusqu’à 1 000 séries par page. Une requête paginée peut lire jusqu’à 100 000 clés de métrique sur l’ensemble de ses pages. Voir Paginer une liste.
select. Le champ limit ne peut
pas les augmenter. Les graphiques de tableau de bord chargent leurs données
depuis /api/v2/metrics/timeseries, la limite de 100 séries s’applique donc
aussi aux graphiques.
Si une requête correspond à plus de séries que le point de terminaison ne peut en traiter, AppSignal ne renvoie qu’une partie des données. La réponse n’indique pas qu’elle est incomplète, donc les totaux agrégés peuvent être trop bas. Répéter la même requête renvoie le même sous-ensemble, mais le résultat reste
incomplet. Pour lire plus de séries à partir d’une requête de liste,
paginez-la. Une requête paginée qui correspond à plus
de 100 000 clés de métrique renvoie pagination_key_limit_exceeded au lieu
d’un résultat partiel.
La page Limites montre quelles métriques personnalisées
signalent le plus de combinaisons de tags uniques par minute. Lorsque les
valeurs de tags changent au fil du temps, une requête sur une plage plus
longue peut correspondre à plus de séries que ce que montre la page.
Les métriques personnalisées fonctionnent mieux avec des tags ayant un ensemble de valeurs restreint et fixe, comme region, plan ou queue. Si une métrique existante a des tags à forte cardinalité, des filtres de tags exacts peuvent réduire le nombre de séries correspondantes, mais la réponse ne peut pas confirmer qu’elle contient toutes les séries. Consultez Tags de métriques pour des conseils sur le choix des valeurs de tags.
Référence
Champs
Lefield sélectionne quelle mesure récupérer à partir d’une métrique :
Pour plus de références sur les types, lisez la documentation de l’API V2 d’AppSignal.
Agrégations
L’aggregation combine plusieurs valeurs dans un intervalle temporel : SUM, AVERAGE, MIN, MAX, FIRST ou LAST.
Résolutions
resolution accepte MINUTELY, HOURLY ou DAILY.
MINUTELY s’applique uniquement lorsque la plage est de 12 heures ou moins et
commence dans les 48 dernières heures. En dehors de cette fenêtre, AppSignal
utilise HOURLY à la place et l’indique dans le champ resolution de la
réponse.