Publication de mesures personnalisées à l'aide de l'API
Publiez des mesures personnalisées dans le service de surveillance.
Les configurations d'agent sont un autre moyen de publier des mesures personnalisées dans le service de surveillance. Avec les configurations d'agent, l'API n'est pas nécessairement requise pour publier des mesures personnalisées. Vous pouvez désormais utiliser les configurations d'agent pour ingérer des données de mesure dans des mesures personnalisées. Par exemple, exposez les mesures d'une machine virtuelle à l'aide d'un point d'extrémité HTTP au format Prometheus.
Une mesure personnalisée est une mesure que vous concevez pour collecter et analyser des données.
Par exemple, créez une mesure productOrder
(dans un espace de noms de mesure, mymetricsnamespace
) pour suivre les commandes de produit par pays et par division, avec des métadonnées supplémentaires pour les catégories de produit et les notes.
Avant de commencer
Politiques IAM : Pour publier des mesures personnalisées, le type d'accès requis doit vous être accordé dans une politique écrite par un administrateur. Cette exigence s'applique que vous utilisiez l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message indiquant que vous n'êtes pas autorisé, communiquez avec l'administrateur. Vous n'avez peut-être pas le type d'accès requis pour le compartiment courant.
Administrateurs : Pour un exemple de politique, voir Publier des mesures personnalisées (sécurisation du service de surveillance).
Points à considérer
Lors de la définition de mesures personnalisées, notez les points suivants :
- Pour l'espace de noms de mesure, n'utilisez pas de préfixe réservé (
oci_
ouoracle_
). - Assurez-vous que les mesures personnalisées ne dépassent pas les limites. Par exemple, notez l'intervalle valide des dimensions et le nombre maximum de flux pour les mesures personnalisées. Voir PostMetricData.
- Définissez les mesures en tenant compte de l'agrégation. Bien que les mesures personnalisées puissent être publiées aussi fréquemment que toutes les secondes (fréquence minimale d'une seconde), l'intervalle d'agrégation minimal est d'une minute.
- Définissez les mesures en gardant à l'esprit les limites de retour. Les informations sur les limites pour les données retournées comprennent la valeur maximale de 100 000 points de données et les intervalles de temps maximum (déterminés par la résolution, qui se rapporte à l'intervalle). Consultez la page MetricData. Voir aussi Limites du service de surveillance.
- Assurez-vous que les valeurs d'horodatage sont proches de l'heure courante. Pour qu'un point de données soit publié, son heure doit être proche de l'heure courante (moins de deux heures dans le passé et moins de 10 minutes dans le futur). Voir PostMetricData.
- Après avoir publié les mesures personnalisées, vous pouvez y accéder de la même façon que pour toutes les autres mesures stockées par le service Surveillance : Voir les graphiques dans la console, interroger les mesures à l'aide de l'interface de ligne de commande ou de l'API et Créer des alarmes.
- Lors de l'extraction des mesures personnalisées, vous pouvez effectuer une mise en correspondance avec un groupe de ressources. Une valeur vide (nulle) pour le groupe de ressources retourne des données de mesure qui n'ont pas de groupe de ressources.
Clients de publication de mesures
Pour plus d'informations sur le développement d'un client de publication de mesures, voir le guide du développeur. Pour un exemple de client, voir MonitoringMetricPostExample.java.
Pour plus d'informations sur l'utilisation de l'API et sur la signature des demandes, voir la documentation de l'API REST et Security Credentials. Pour plus d'informations sur les trousses SDK, voir Trousses SDK et interface de ligne de commande.
Cette tâche ne peut pas être effectuée dans la console. - Note
Contrairement aux autres commandes du service de surveillance qui utilisent des points d'extrémitételemetry
, cette commande requiert un point d'extrémitételemetry-ingestion
.Utilisez la commande oci monitoring metric-data post, le paramètre
--endpoint
et les paramètres requis pour publier des mesures personnalisées :oci monitoring metric-data post --metric-data file://<json_file_path> --endpoint https://telemetry-ingestion.<region>.oraclecloud.com
Pour la liste complète des paramètres et des valeurs pour les commandes de l'interface de ligne de commande, voir Informations de référence sur la ligne de commande pour le service de surveillance.
Exemple de fichier JSON pour une demandeL'exemple de fichier JSON inclut les éléments suivants.
- Espace de noms de mesure :
mymetricsnamespace
- Nom de mesure :
productOrder
- Dimension de produit
- Dimension de pays
- Groupe de ressources (
DivisionX
,DivisionY
) - Métadonnées supplémentaires pour la catégorie et la note
[ { "compartmentId": "$compartmentId", "datapoints": [ { "count": 10, "timestamp": "2023-01-08T04:18:01+00:00", "value": 5.0 }, { "count": 3, "timestamp": "2023-01-08T05:11:01+00:00", "value": 10.0 } ], "dimensions": { "product": "ball", "country": "NL" }, "metadata": { "category": "toys", "note": "national holiday" }, "name": "productOrder", "namespace": "mymetricsnamespace", "resourceGroup": "divisionX" }, { "compartmentId": "$compartmentId", "datapoints": [ { "count": 7, "timestamp": "2023-01-08T03:22:01+00:00", "value": 3.0 }, { "count": 11, "timestamp": "2023-01-08T05:08:03+00:00", "value": 2 } ], "dimensions": { "product": "The Road to Nowhere", "country": "FR" }, "metadata": { "category": "books", "note": "start second semester" }, "name": "productOrder", "namespace": "mymetricsnamespace", "resourceGroup": "divisionY" } ]
Exemple de réponse{ "data": { "failed-metrics": [], "failed-metrics-count": 0 } }
- Espace de noms de mesure :
- Note
Contrairement aux autres opérations du service de surveillance qui utilisent des points d'extrémitételemetry
, cette opération nécessite un point d'extrémitételemetry-ingestion
.Exécutez l'opération PostMetricData pour publier des mesures personnalisées.
Exemple d'une demande par lotsCet exemple montre une seule demande contenant des points de données pour des mesures sur deux espaces de noms de mesure.
[ { "namespace":"myFirstNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "resourceGroup":"myFirstResourceGroup", "name":"successRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.exampleuniqueID", "appName":"myAppA" }, "metadata":{ "unit":"percent", "displayName":"MyAppA Success Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:20Z", "value":83.0 }, { "timestamp":"2023-01-10T22:19:40Z", "value":90.1 } ] }, { "namespace":"myFirstNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "resourceGroup":"mySecondResourceGroup", "name":"successRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.differentuniqId", "appName":"myAppA" }, "metadata":{ "unit":"percent", "displayName":"MyAppA Success Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:10Z", "value":100.0 }, { "timestamp":"2023-01-10T22:19:30Z", "value":100.0 } ] }, { "namespace":"mySecondNamespace", "compartmentId":"ocid1.compartment.oc1..exampleuniqueID", "name":"deliveryRate", "dimensions":{ "resourceId":"ocid1.exampleresource.region1.phx.exampleuniqueID", "appName":"myAppB" }, "metadata":{ "unit":"bytes", "displayName":"MyAppB Delivery Rate" }, "datapoints":[ { "timestamp":"2023-01-10T22:19:00Z", "value":87.0, "count":60 }, { "timestamp":"2023-01-10T22:19:00Z", "value":96.0, "count":30 } ] } ]
Informations supplémentaires
Pour découvrir les cas d'utilisation courants avec des mesures personnalisées, voir Présentation des mesures personnalisées. Pour le dépannage des interrogations, voir Résolution des interrogations.