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.

    Authorization E IBMInstanceID sono 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_TOKEN e il GUID Vedere,Intestazioni per token IAM.

  • Puoi passare il file metrics.json per 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.

    Authorization E IBMInstanceID sono 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_TOKEN e il GUID Vedere,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, come us-east.
  • Sostituire <apikey> con unIBM CloudToken della chiave API IAM.
  • Sostituire <instance_id> con il tuo IDMonitoring esempio.
  • Sostituisci il metrics campo 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

  1. 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.
  2. Aspetta qualche minuto per il tuoEvent Streams istanza a disposizione.

  3. Nel tuoEvent Streams esempio,creare un argomento, ad esempio kafka-java-console-sample-topic.

  4. 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
    
  5. Nell'output del comando precedente, ottieni i dettagli necessari per effettuare una chiamata REST.

    • api_key
    • kafka_http_url

    Output di esempio:

    api_key:      123465123456123465123465123465123465
    kafka_http_url:           https://mh-<id>.private.us-south.messagehub.appdomain.cloud
    
  6. Dal Monitoring pannello di controllo, fare clic Apri il cruscotto per ilMonitoring istanza che desideri utilizzare.

  7. Clic Inizia > Configura un canale di notifica > Configura canale di notifica. Si apre la pagina Impostazioni.

  8. Clic + Aggiungi canale di notifica e seleziona il Webhook opzione.

  9. 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_url dalla chiave di servizio e aggiungere il percorso /topics/<topic>/records all' 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.
  10. Ottieni un token IAM per autenticare le tue richieste alMonitoring API.

  11. Curl ILMonitoring API per elencare i canali di notifica.

  • Sostituire <region> con la tua regioneMonitoring esempio, come us-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
     }
 },
  1. Curl ILMonitoring API per aggiungere l'intestazione di autenticazione al canale di notifica del webhook.
  • Sostituire <region> con la tua regioneMonitoring esempio, come us-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
  1. Curl ILMonitoring API nuovamente per confermare che il canale di notifica è aggiornato con l'intestazione di autenticazione.
  • Sostituire <region> con la tua regioneMonitoring esempio, come us-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"
    ...
  1. 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.