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. Beispiel: Sie können Metriken von einer virtuellen Maschine (VM) mit einem HTTP-Endpunkt im Prometheus-Format bereitstellen.
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 Produktbestellungen nach Land und Geschäftsbereich mit zusätzlichen Metadaten für Produktkategorien und Notizen zu verfolgen.
Bevor Sie beginnen
IAM-Policys: Um benutzerdefinierte Metriken zu veröffentlichen, 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 nicht über die entsprechende Berechtigung verfügen oder nicht autorisiert sind, fragen Sie den Administrator. Möglicherweise verfügen Sie im aktuellen Compartment nicht über den erforderlichen Zugriffstyp.
Administratoren: Eine Beispiel-Policy finden Sie unter Benutzerdefinierte Metriken veröffentlichen (Monitoring sichern).
Überlegungen
Beim Definieren benutzerdefinierter Metriken beachten Sie Folgendes:
- Verwenden Sie für den Metrik-Namespace kein reserviertes Präfix (
oci_
oderoracle_
). - Stellen Sie sicher, dass benutzerdefinierte Metriken die Grenzwerte nicht überschreiten. Beachten Sie beispielsweise den gültigen Bereich von Dimensionen und die Höchstanzahl von Streams für benutzerdefinierte Metriken. Siehe PostMetricData.
- Definieren von Metriken unter Berücksichtigung der Aggregation. Während benutzerdefinierte Metriken sogar jede Sekunde (minimale Häufigkeit von einer Sekunde) gepostet werden können, beträgt das minimale Aggregationsintervall eine Minute.
- Definieren Sie Metriken unter Berücksichtigung der Rückgabelimits. 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 sein Zeitstempel nahezu der aktuellen Zeit (weniger als zwei Stunden in der Vergangenheit und weniger als 10 Minuten in der Zukunft) entsprechen. Siehe PostMetricData.
- Nachdem sie benutzerdefinierte Metriken veröffentlicht haben, 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) unter Ressourcengruppe geben Metrikdaten zurück, die keine Ressourcengruppe haben.
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.