Benutzerdefinierte Metriken mit der API veröffentlichen
Veröffentlichen Sie benutzerdefinierte Metriken im Monitoring-Service.
Agent-Konfigurationen sind eine weitere Möglichkeit, benutzerdefinierte Metriken in Monitoring zu veröffentlichen. Bei Agent-Konfigurationen ist die API nicht unbedingt erforderlich, um benutzerdefinierte Metriken zu veröffentlichen. Sie können jetzt Agent-Konfigurationen verwenden, um Metrikdaten in benutzerdefinierte Metriken aufzunehmen. Stellen Sie beispielsweise Metriken aus einer virtuellen Maschine (VM) mit einem HTTP-Endpunkt im Prometheus-Format bereit.
Eine benutzerdefinierte Metrik ist eine Metrik, die Sie zum Erfassen und Analysieren von Daten entwerfen.
Beispiel: Erstellen Sie eine productOrder
-Metrik (in einem Metrik-Namespace, mymetricsnamespace
), um Produktaufträge nach Land und Geschäftsbereich mit zusätzlichen Metadaten für Produktkategorien und Notizen zu verfolgen.
Bevor Sie beginnen
IAM-Policys: Um benutzerdefinierte Metriken veröffentlichen zu können, müssen Sie den erforderlichen Zugriffstyp in einer von einem Administrator geschriebenen Policy erhalten. Dabei spielt es keine Rolle, ob Sie die REST-API mit einem SDK, der CLI oder einem anderen Tool verwenden. Wenn Sie eine Nachricht erhalten, dass Sie keine Berechtigung oder Autorisierung haben, wenden Sie sich an den Administrator. Sie haben im aktuellen Compartment möglicherweise nicht den erforderlichen Zugriffstyp.
Administratoren: Eine Beispiel-Policy finden Sie unter Benutzerdefinierte Metriken veröffentlichen (Monitoring sichern).
Überlegungen
Wenn Sie benutzerdefinierte Metriken definieren, beachten Sie Folgendes:
- Verwenden Sie für den Metrik-Namespace kein reserviertes Präfix (
oci_
oderoracle_
). - Stellen Sie sicher, dass benutzerdefinierte Metriken die Limits nicht überschreiten. Beachten Sie beispielsweise den gültigen Bereich von Dimensionen und die Höchstanzahl von Streams für benutzerdefinierte Metriken. Siehe PostMetricData.
- Metriken vor der Aggregation definieren Während benutzerdefinierte Metriken sogar jede Sekunde (minimale Häufigkeit von einer Sekunde) gepostet werden können, beträgt das minimale Aggregationsintervall eine Minute.
- Berücksichtigen Sie bei der Definition von Metriken die Retourenlimits. Die Informationen zu den Limits für die zurückgegebenen Daten umfassen das Maximum von 100.000 Datenpunkten und die maximalen Zeiträume (werden durch die Auflösung bestimmt, die sich auf das Intervall bezieht). Siehe MetricData. Siehe auch Limits für Monitoring.
- Stellen Sie sicher, dass die Zeitstempelwerte nahezu der aktuellen Zeit entsprechen. Damit ein Datenpunkt gepostet werden kann, muss der zugehörige Zeitstempel nahezu der aktuellen Zeit entsprechen (weniger als zwei Stunden in der Vergangenheit und weniger als 10 Minuten in der Zukunft). Siehe PostMetricData.
- Nach der Veröffentlichung benutzerdefinierter Metriken können Sie auf diese genauso zugreifen wie auf andere vom Monitoring-Service gespeicherte Metriken: Diagramme in der Konsole anzeigen, Metriken mit der CLI oder API abfragen und Alarme erstellen.
- Wenn Sie benutzerdefinierte Metriken abrufen, können Sie diese mit einer Ressourcengruppe abgleichen. Leere Werte (Nullwerte) für die Ressourcengruppe geben Metrikdaten ohne Ressourcengruppe zurück.
Clients zum Posten von Metriken
Informationen zum Entwickeln eines Clients zum Posten von Metriken finden Sie in der Entwicklerdokumentation. Einen Beispielclient finden Sie unter MonitoringMetricPostExample.java.
Informationen zur Verwendung der API und zu Signieranforderungen finden Sie unter REST-API-Dokumentation und Sicherheitszugangsdaten. Informationen zu SDKs finden Sie unter SDKs und die CLI.
Diese Aufgabe kann nicht in der Konsole ausgeführt werden. - Hinweis
Im Gegensatz zu anderen Monitoring-Befehlen, dietelemetry
-Endpunkte verwenden, erfordert dieser Befehl einentelemetry-ingestion
-Endpunkt.Verwenden Sie den Befehl oci monitoring metric-data post, den Parameter
--endpoint
und die erforderlichen Parameter, um benutzerdefinierte Metriken zu veröffentlichen:oci monitoring metric-data post --metric-data file://<json_file_path> --endpoint https://telemetry-ingestion.<region>.oraclecloud.com
Eine vollständige Liste der Parameter und Werte für CLI-Befehle finden Sie in der Befehlszeilenreferenz für Monitoring.
JSON-Beispieldatei für AnforderungDie JSON-Beispieldatei enthält die folgenden Elemente.
- Metrik-Namespace:
mymetricsnamespace
- Metrikname:
productOrder
- Produktdimension
- Landesdimension
- Ressourcengruppe (
DivisionX
,DivisionY
) - Zusätzliche Metadaten für Kategorie und Notiz
[ { "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" } ]
Beispielantwort{ "data": { "failed-metrics": [], "failed-metrics-count": 0 } }
- Metrik-Namespace:
- Hinweis
Im Gegensatz zu anderen Monitoring-Vorgängen, dietelemetry
-Endpunkte verwenden, ist für diesen Vorgang eintelemetry-ingestion
-Endpunkt erforderlich.Führen Sie den Vorgang PostMetricData aus, um benutzerdefinierte Metriken zu veröffentlichen.
Beispiel für eine Anforderung im BatchDieses Beispiel zeigt eine einzelne Anforderung mit Datenpunkten für Metriken über zwei Metrik-Namespaces .
[ { "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 } ] } ]
Weitere Informationen
Informationen zu allgemeinen Anwendungsfällen mit benutzerdefinierten Metriken finden Sie unter Schritt-für-Schritt-Anleitung für benutzerdefinierte Metriken. Informationen zur Fehlerbehebung bei Abfragen finden Sie unter Fehlerbehebung bei Abfragen.