Pubblicazione di metriche personalizzate mediante l'API
Pubblicare le metriche personalizzate nel servizio di monitoraggio.
Le configurazioni agente sono un altro modo per pubblicare metriche personalizzate in Monitoraggio. Con le configurazioni agente, l'API non è necessariamente necessaria per pubblicare metriche personalizzate. È ora possibile utilizzare le configurazioni 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 delle metriche, mymetricsnamespace
) per tenere traccia degli ordini dei prodotti per paese e divisione, con metadati aggiuntivi per le categorie e le note dei prodotti.
Prima di iniziare
Criteri IAM: per pubblicare metriche personalizzate, è necessario disporre del tipo di accesso richiesto in un criterio scritto da un amministratore. Questo requisito si applica sia che tu stia utilizzando l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, contattare l'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
Quando si definiscono metriche personalizzate, tenere presente quanto riportato di seguito.
- Per lo spazio di nomi delle metriche, non utilizzare un prefisso riservato (
oci_
ooracle_
). - Assicurarsi che le metriche personalizzate non superino i limiti. Ad esempio, si noti 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 conto dei limiti di restituzione. Le informazioni sui limiti per i dati restituiti includono il massimo di 100.000 datapoint e il massimo dell'intervallo di tempo (determinato dalla risoluzione, che si riferisce all'intervallo). Vedere MetricData. Vedere anche Limiti sul monitoraggio.
- Assicurarsi che i valori dell'indicatore orario siano vicini all'ora corrente. Per poter pubblicare un datapoint, l'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 grafici nella console, metriche di query utilizzando l'interfaccia CLI o l'API e creare allarmi.
- Quando si recuperano metriche personalizzate, è possibile abbinare a un gruppo di risorse. Vuoto (nullo) per il gruppo di risorse restituisce i dati delle metriche che non hanno un gruppo di risorse.
Client di pubblicazione delle metriche
Per informazioni sullo sviluppo di un client di pubblicazione delle metriche, vedere Developer Guide. Per un client di esempio, vedere MonitoringMetricPostExample.java.
Per informazioni sull'uso dell'API e sulle richieste di firma, consultare la documentazione relativa all'API REST e le credenziali di sicurezza. Per informazioni sugli SDK, vedere SDK e CLI.
Questo task non può essere eseguito nella console. - Nota
A differenza di altri comandi di monitoraggio che utilizzano endpointtelemetry
, questo comando richiede un endpointtelemetry-ingestion
.Utilizzare il comando oci monitoring Metric-data post, il parametro
--endpoint
e i parametri richiesti 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, consultare il manuale Command Line Reference for Monitoring.
File JSON di esempio per la richiestaIl 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 } }
- Spazio di nomi metrica:
- Nota
A differenza di altre operazioni di monitoraggio che utilizzano endpointtelemetry
, questa operazione richiede un endpointtelemetry-ingestion
.Eseguire l'operazione PostMetricData per pubblicare le metriche personalizzate.
Esempio di richiesta in batchQuesto esempio mostra una singola richiesta contenente datapoint per le metriche in due spazi di 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 } ] } ]
Ulteriori informazioni
Per informazioni sui casi d'uso comuni con metriche personalizzate, vedere Panoramica delle metriche personalizzate. Per la risoluzione dei problemi delle query, vedere Risoluzione dei problemi delle query.