Estrazione delle metriche da aMonitoring istanza utilizzando l'API di monitoraggio
Puoi estrarre le metriche da un fileIBM Cloud Monitoring esempio utilizzando il fileMonitoring API.
Ottieni metriche utilizzandocURL
Puoi usare quanto segue cURL comando per ottenere le metriche:
curl -X POST <SYSDIG_REST_API_ENDPOINT>/data -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d DATA
Dove
-
<SYSDIG_REST_API_ENDPOINT>indica l'endpoint target dalla chiamata API REST. Per ulteriori informazioni, vedere Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile negli Stati Uniti del sud è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationEIBMInstanceIDsono intestazioni necessarie per l'autenticazione.SysdigTeamIDè facoltativo. Quando specifichi questa intestazione, limiti la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe ilGUIDVedere,Intestazioni per token IAM. -
Puoi passare il file
metrics.jsonper estrarre le metriche utilizzando-d, Per esempio,-d @metrics.json.
L'esempio seguente mostra un modello per metrics.json file:
{
"start": "Number: seconds",
"end": "Number: seconds",
"last": "Number: last available seconds",
"metrics": [
{
"id": "<>",
"aggregations": {}
}
],
"sampling": "Number: <10|60|600|3600|86400>",
"dataSourceType": "<host|container>",
"filter": "<>",
"paging": {
"from": "Number",
"to": "Number"
}
}
Dizionario delle metriche
Per vedere le metriche predefinite da Sysdig, vedere Dizionario delle metriche.
Per visualizzare le metriche predefinite definite daIBM Cloud servizi abilitati per Sysdig, vedere Servizi cloud.
Aggregazione dei dati
Per ulteriori informazioni sull'aggregazione dei dati, vedere Aggregazione dei dati.
Esempio: estrazione delle metriche della piattaforma
Questo esempio mostra come estrarre le metriche della piattaformaCloud Foundry In* noi-sud* nelle ultime 24 ore.
curl -X POST https://us-south.monitoring.cloud.ibm.com/api/data -H "Authorization: Bearer $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "content-type: application/json" -d @metrics.json
Il seguente esempio di metrics.json mostra come configurare il file per estrarre i dati in base all'ID istanza, all'età del contenitore dell'app e al numero di byte utilizzati dall'app:
{
"metrics": [
{
"id": "ibm_resource"
},
{
"id": "ibm_cloudfoundry_app_container_age",
"aggregations": {"group": "max", "time": "max"}
},
{
"id": "ibm_cloudfoundry_app_memory_bytes_used",
"aggregations": {"group": "avg", "time": "avg"}
}
],
"filter": "ibm_location = \"us-south\"",
"sampling": 86400,
"last": 86400
}
Il risultato dell'estrazione dei dati restituisce le seguenti informazioni:
{
"data": [
{
"d": [
"73a9d202-7e97-45b2-a107-3b1528856be3",
316660942465643,
18809015.575
],
"t": 1587772800
}
],
"end": 1587772800,
"start": 1587686400
}
Esempio: estrazione dei dati della CPU
Questo esempio mostra come estrarre i dati della CPU per host con limite di inizio, fine e campionamento.
Il seguente esempio di metrics.json file mostra come configurare il file per estrarre i dati della CPU:
{
"start":"1555404790",
"end":"1555404850",
"sampling": 10,
"metrics": [
{
"id": "host.hostName"
},
{
"id": "cpu.used.percent",
"aggregations": {"time": "avg"}
}
],
"dataSourceType": "host"
}
Il risultato dell'estrazione dei dati restituisce le seguenti informazioni:
{
"data": [
{
"d": [
"j-rhel71.fyre.ibm.com",
3.621
],
"t": 1555404800
},
{
"d": [
"j-rhel71.fyre.ibm.com",
3.597
],
"t": 1555404810
},
{
"d": [
"j-rhel71.fyre.ibm.com",
3.993
],
"t": 1555404820
},
{
"d": [
"j-rhel71.fyre.ibm.com",
3.145
],
"t": 1555404830
},
{
"d": [
"j-rhel71.fyre.ibm.com",
4.09
],
"t": 1555404840
},
{
"d": [
"j-rhel71.fyre.ibm.com",
5.057
],
"t": 1555404850
}
],
"end": 1555404850,
"start": 1555404790
}
Campione:cURL campione per estrarre la metrica più recente
Per ottenere il valore più recente di una metrica, specificare solo il nome della metrica. Viene restituito il valore più recente generato non più di 5 minuti fa.
Ad esempio, per ottenere il valore più recente di host_cpu_used_percent :
curl <SYSDIG_REST_API_ENDPOINT>/prometheus/api/v1/query?query=sysdig_host_cpu_used_percent -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
Dove
-
<SYSDIG_REST_API_ENDPOINT>indica l'endpoint target dalla chiamata API REST. Per ulteriori informazioni, vedere Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile negli Stati Uniti del sud è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationEIBMInstanceIDsono intestazioni necessarie per l'autenticazione.SysdigTeamIDè facoltativo. Quando specifichi questa intestazione, limiti la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe ilGUIDVedere,Intestazioni per token IAM.
Tutti i dashboard supportano completamentePromQL API. Per ulteriori informazioni sulle possibilità offerte dall' PromQL,, consultare la documentazione dell' Prometheus.
Campione:cURL campione per estrarre i dati della CPU per un team
Questo esempio mostra come estrarre i dati della CPU disponibili nel contesto di un team.
curl -X POST https://us-south.monitoring.cloud.ibm.com/api/data -H "Authorization: Bearer $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: 30785" -H "content-type: application/json" -d @metrics.json
Esempio: estrarre i dati metrici daMonitoring AEvent Streams
Puoi utilizzare l'esempio di codice seguente per estrarre le metriche dal tuoMonitoring istanza aEvent Streams.
- Sostituire
<region>con la tua regioneMonitoring esempio, comeus-east. - Sostituire
<apikey>con unIBM CloudToken della chiave API IAM. - Sostituire
<instance_id>con il tuo IDMonitoring esempio. - Sostituisci il
metricscampo con l'array JSON di parametri che desideri estrarre. La metrica di esempio ècpu.cores.used.
from sdcclient import IbmAuthHelper, SdMonitorClient
endpoint = "https://<region>.monitoring.cloud.ibm.com"
apikey = "<apikey>"
instanceID = "<instance_id>"
ibm_headers = IbmAuthHelper.get_headers(endpoint, apikey, instanceID)
sdclient = SdMonitorClient(sdc_url=endpoint, custom_headers=ibm_headers)
metrics = [
{
"id": "cpu.cores.used",
"aggregations": {
"time": "avg",
"group": "sum"
}
}
]
filter = None
start = -120
end = 0
sampling = 60
ok, res = sdclient.get_data(metrics, start, end, sampling, filter=filter, datasource_type = "container")
print(ok)
print(res)
return res
Esempio: estrai le notifiche daMonitoring AEvent Streams con ilEvent Streams API REST
-
Creare unEvent Streams esempio.
- Dai piani tariffari, seleziona un Piano aziendale.
- Se necessario, impostare un Autorizzazione in IAM perEvent Streams per prendere di mira un provider KMS comeKey Protect e aggiorna la pagina.
- Per il Endpoint del servizio, selezionare un'opzione con a Privato rete.
-
Aspetta qualche minuto per il tuoEvent Streams istanza a disposizione.
-
Nel tuoEvent Streams esempio,creare un argomento, ad esempio
kafka-java-console-sample-topic. -
Crea una chiave di servizio per le credenziali del tuoEvent Streams istanza sull'endpoint del servizio cloud privato.
<name>: Inserire un nome per la chiave di servizio.<event_streams_instance>: Sostituire con il nome dell'istanza di Event Streams.
ibmcloud resource service-key-create <name> Writer --instance-name <event_streams_instance> --service-endpoint private -
Nell'output del comando precedente, ottieni i dettagli necessari per effettuare una chiamata REST.
api_keykafka_http_url
Output di esempio:
api_key: 123465123456123465123465123465123465 kafka_http_url: https://mh-<id>.private.us-south.messagehub.appdomain.cloud -
Dal Monitoring pannello di controllo, fare clic Apri il cruscotto per ilMonitoring istanza che desideri utilizzare.
-
Clic Inizia > Configura un canale di notifica > Configura canale di notifica. Si apre la pagina Impostazioni.
-
Clic + Aggiungi canale di notifica e seleziona il Webhook opzione.
-
Configura il canale di notifica del webhook. Dopo aver creato il canale di notifica del webhook, devi continuare a configurare l'autenticazione per il canale.
- Per URL, inserire l'
kafka_http_urldalla chiave di servizio e aggiungere il percorso/topics/<topic>/recordsall' URL.<topic>, ovvero "Tema di lavoro", è il nome dell'argomento che hai creato nella tua istanza di Event Streams. - Per Nome, inserisci un nome per il canale di notifica del webhook.
- Lascia gli altri campi con le impostazioni predefinite.
- Fare clic su Salva per creare il canale.
- Per URL, inserire l'
-
Ottieni un token IAM per autenticare le tue richieste alMonitoring API.
-
Curl ILMonitoring API per elencare i canali di notifica.
- Sostituire
<region>con la tua regioneMonitoring esempio, comeus-east. - Sostituisci
<token>con il token IAM che hai recuperato in precedenza.
curl ’https://<region>.monitoring.cloud.ibm.com/api/notificationChannels' --header ‘Authorization: Bearer <token>’ | jq
Nell'output, notare l' id e del canale di notifica in cui il campo options.url corrisponde al URL che hai creato in precedenza.
{
"id": 123,
"version": 6,
...
"options": {
"notifyOnOk": true,
"url": "https://mh-<id>.private.us-south.messagehub.appdomain.cloud",
"notifyOnResolve": true
}
},
- Curl ILMonitoring API per aggiungere l'intestazione di autenticazione al canale di notifica del webhook.
- Sostituire
<region>con la tua regioneMonitoring esempio, comeus-east. - Sostituire
<id>con l'ID del canale di notifica che hai recuperato in precedenza. - Sostituisci
<token>con il token IAM che hai recuperato in precedenza.
curl -X PUT ’https://<region>.monitoring.cloud.ibm.com/api/notificationChannels/<id>' \
--header ‘Content-Type: application/json’
--header ‘Authorization: Bearer <token>’ -d @/tmp/notification.json
- Curl ILMonitoring API nuovamente per confermare che il canale di notifica è aggiornato con l'intestazione di autenticazione.
- Sostituire
<region>con la tua regioneMonitoring esempio, comeus-east. - Sostituisci
<token>con il token IAM che hai recuperato in precedenza.
curl ’https://<region>.monitoring.cloud.ibm.com/api/notificationChannels' --header ‘Authorization: Bearer <token>’ | jq
Nell'output, notare il additionalHeaders.X-Auth-Token il campo viene aggiunto al canale di notifica.
{
"notificationChannel":
{
"id": 123,
....
"options": {
"notifyOnOk": true,
"url": "https://mh-<id>.private.us-south.messagehub.appdomain.cloud/topics/kafka-java-console-sample-topic/records",
"notifyOnResolve": true,
"additionalHeaders": {
"X-Auth-Token": "123456123456123456123456123465123456"
...
- Imposta un avviso che utilizza il canale di notifica del webhook per cui hai creatoEvent Streams.
Ora, quando viene attivato un avviso daEvent Streams, puoi rivedere i dettagli nel tuoMonitoring esempio.