Publication de mesures personnalisées à l'aide de l'API

Publiez des mesures personnalisées dans le service de surveillance.

Conseil

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 :

  • 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 demande

    L'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
      }
    }
  • 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 lots

    Cet 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
             }
          ]
       }
    ]