Prise en charge avancée des requêtes pour AWS et Azure
Découvrez comment créer des requêtes avancées pour Observabilité des services les graphiques de tableau de bord.
Les requêtes avancées prennent en Observabilité des services charge la plupart des langues de requête spécifiques aux fournisseurs. Il suffit de copier une requête du graphique d’observabilité et de la coller dans le champ Requête avancée dans Observabilité des services. Toutefois, les requêtes vers AWS et Azure doivent être au format JSON et suivre les instructions décrites dans cette rubrique.
Requêtes avancées AWS
Les données d’AWS sont accessibles à l’aide de l’API GetMetricData . Les requêtes peuvent être soit une demande directe au format JSON à cette API, soit elles peuvent se présenter sous la forme d’un widget de mesure DashboardBody . Par exemple, vous pouvez utiliser la représentation de widget pour un graphique qui existe sur un tableau de bord AWS CloudWatch.
Demande directe GetMetricData
L’exemple suivant montre une requête JSON GetMetricData pour un graphique qui affiche l’utilisation moyenne du processeur pour une instance ELB.
{
"StartTime": 1637061900, // can be replaced with “${START}”
"EndTime": 1637074500, // can be replaced with “${END}”
"MetricDataQueries": [
{
"Expression": "SELECT AVG(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId)",
"Id": "q1",
"Period": 300,
"Label": "Cluster CpuUtilization"
},
{
"Id": "m1",
"Label": "Unhealthy Behind Load Balancer",
"MetricStat": {
"Metric": {
"Namespace": "AWS/ApplicationELB",
"MetricName": "UnHealthyHostCount",
"Dimensions": [
{
"Name": "LoadBalancer",
"Value": "app/EC2Co-EcsEl-EXAMPLE69Q/fdd2210e799e4376" // can be replaced with “${ENTITIES}” or “${ENTITIES_ELB}”
}
]
},
"Period": 300,
"Stat": "Average"
}
}
]
}
Source copiée pour un seul objet dans un tableau de bord AWS CloudWatch
Cet exemple montre le JSON copié directement à partir d’un seul objet dans la liste des widgets de la vue Source d’un tableau de bord CloudWatch.
{
"type": "metric",
"x": 9,
"y": 0,
"width": 15,
"height": 5,
"properties": {
"view": "timeseries",
"metrics": [
[ "AWS/ApplicationELB", "RequestCountPerTarget", "TargetGroup", "targetgroup/api-tg/1e3dc9z72fe21ca2", "AvailabilityZone", "us-west-1a" ],
["...", "targetgroup/api-tg-cs/82a1db5f950073e1", ".", "." ]
],
"region": "us-west-1"
}
}
Valeur de la dimension LoadBalancer par ${ENTITY_ELB}. La requête est exécutée par rapport à chaque instance ELB associée au service sélectionné dans l’interface Observabilité des services utilisateur. Le graphique affiche une série chronologique pour chacun d’eux.| Champ AWS | Variable de modèle |
|---|---|
Dimensions[n]. Valeur |
Les |
Heure de début |
DÉMARRER |
Heure de fin |
FIN |
Requêtes avancées Azure
Vous exécutez une requête avancée pour un graphique basé sur Azure en copiant la source à partir de l’interface utilisateur Azure et en la collant dans le champ Requête avancée .
- Dans l’interface utilisateur Azure, exportez et téléchargez le tableau de bord.
- Copiez le JSON pour un seul graphique. Les graphiques se trouvent dans
properties.lenses[i].parts[j].metadata.settings.content.options.chart. - Collez le JSON dans le champ de requête. Le JSON doit inclure au moins les éléments suivants :
Le champ``` { “metrics”: [ “name”: string, “resourceMetadata”: { “id”: string } ] } ```IDdoit être soit un ID de ressource Azure, soit une variable de modèle.