Pubblicazione di metriche personalizzate mediante l'API

Pubblica le metriche personalizzate nel servizio di monitoraggio.

Suggerimento

Configurazioni agente sono un altro modo per pubblicare metriche personalizzate nel servizio di monitoraggio. Con le configurazioni agente, l'API non è necessariamente necessaria per pubblicare metriche personalizzate. Ora puoi utilizzare le configurazioni dell'agente per includere i dati delle metriche nelle metriche personalizzate. Ad esempio, esporre le metriche da una virtual machine (VM) utilizzando un endpoint HTTP in formato Prometheus.

Una metrica personalizzata è una metrica progettata per raccogliere e analizzare i dati.

Ad esempio, creare una metrica productOrder (in uno spazio di nomi di metrica, mymetricsnamespace) per tenere traccia degli ordini di prodotti per paese e divisione, con metadati aggiuntivi per categorie di prodotti e note.

Informazioni preliminari

Criteri IAM: per pubblicare le metriche personalizzate, è necessario disporre del tipo di accesso richiesto in un criterio scritto da un amministratore. Questo requisito si applica sia che si utilizzi l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se si riceve un messaggio che non si dispone dell'autorizzazione o che non si è autorizzati, rivolgersi all'amministratore. È possibile che non si disponga del tipo di accesso richiesto nel compartimento corrente.

Amministratori: per un criterio di esempio, vedere Pubblica metriche personalizzate (protezione del monitoraggio).

Considerazioni

Durante la definizione delle metriche personalizzate, tenere presente quanto riportato di seguito.

  • Per lo spazio di nomi delle metriche, non utilizzare un prefisso riservato (oci_ o oracle_).
  • Assicurarsi che le metriche personalizzate non superino i limiti. Si noti, ad esempio, l'intervallo valido di dimensioni e il numero massimo di flussi per le metriche personalizzate. Vedere PostMetricData.
  • Definire le metriche tenendo presente l'aggregazione. Sebbene le metriche personalizzate possano essere pubblicate con la stessa frequenza di ogni secondo (frequenza minima di un secondo), l'intervallo di aggregazione minimo è di un minuto.
  • Definire le metriche tenendo presenti i limiti di ritorno. Le informazioni sui limiti per i dati restituiti includono il massimo di 100.000 datapoint e il massimo di intervallo di tempo (determinato dalla risoluzione, relativo all'intervallo). Vedere MetricData. Vedere anche Limiti sul monitoraggio.
  • Assicurarsi che i valori dell'indicatore orario siano prossimi all'ora corrente. Per poter contabilizzare un datapoint, il relativo indicatore orario deve essere vicino all'ora corrente (meno di due ore nel passato e meno di 10 minuti nel futuro). Vedere PostMetricData.
  • Dopo aver pubblicato le metriche personalizzate, è possibile accedervi nello stesso modo in cui si accede a qualsiasi altra metrica memorizzata dal servizio di monitoraggio: visualizza i grafici nella console, le metriche delle query utilizzando l'interfaccia CLI o l'API e crea allarmi.
  • Quando si recuperano le metriche personalizzate, è possibile abbinare a un gruppo di risorse. Vuoto (nullo) per il gruppo di risorse restituisce i dati della metrica che non hanno un gruppo di risorse.
  • Questo task non può essere eseguito nella console.
  • Nota

    A differenza di altri comandi di monitoraggio che utilizzano gli endpoint telemetry, questo comando richiede un endpoint telemetry-ingestion.

    Utilizzare il comando oci monitoring Metric-data post, il parametro --endpoint e i parametri necessari per pubblicare le metriche personalizzate.

    oci monitoring metric-data post --metric-data file://<json_file_path> --endpoint https://telemetry-ingestion.<region>.oraclecloud.com

    Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Monitoring.

    File JSON di esempio per la richiesta

    Il file JSON di esempio include i seguenti elementi.

    • Spazio di nomi metrica: mymetricsnamespace
    • Nome metrica: productOrder
    • Dimensione prodotto
    • Dimensione Paese
    • Gruppo di risorse (DivisionX, DivisionY)
    • Metadati aggiuntivi per categoria e nota
    [
      {
        "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"
      }
    ]
    Risposta di esempio
    {
      "data": {
        "failed-metrics": [],
        "failed-metrics-count": 0
      }
    }
  • Nota

    A differenza di altre operazioni di monitoraggio che utilizzano gli endpoint telemetry, questa operazione richiede un endpoint telemetry-ingestion.

    Eseguire l'operazione PostMetricData per pubblicare le metriche personalizzate.

    Esempio di richiesta in batch

    Questo esempio mostra una singola richiesta contenente datapoint per le metriche su due spazi dei nomi delle metriche .

    [
       {
          "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
             }
          ]
       }
    ]