Pubblicazione di parametri Amazon CloudWatch personalizzati per un ambiente - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Pubblicazione di parametri Amazon CloudWatch personalizzati per un ambiente

Puoi pubblicare i dati raccolti tramite la reportistica sanitaria AWS Elastic Beanstalk avanzata su Amazon CloudWatch come metriche personalizzate. La pubblicazione di metriche CloudWatch consente di monitorare i cambiamenti nelle prestazioni delle applicazioni nel tempo e identificare potenziali problemi monitorando la scalabilità dell'utilizzo delle risorse e della latenza delle richieste in base al carico.

Pubblicando le metriche su CloudWatch, le rendi disponibili anche per l'uso con grafici e allarmi di monitoraggio. Una metrica gratuita viene abilitata automaticamente quando si utilizzano i report sanitari avanzati. EnvironmentHealth Metriche personalizzate diverse dalle tariffe EnvironmentHealthstandard. CloudWatch

Per pubblicare metriche CloudWatch personalizzate per un ambiente, devi prima abilitare la reportistica avanzata sullo stato dell'ambiente. Per istruzioni, consulta Abilitazione del reporting dello stato avanzato Elastic Beanstalk.

Parametri del reporting sullo stato migliorato

Quando abiliti la reportistica sanitaria avanzata nel tuo ambiente, il sistema di reporting sanitario avanzato pubblica automaticamente una metrica CloudWatch personalizzata,. EnvironmentHealth Per pubblicare metriche aggiuntive CloudWatch, configura il tuo ambiente con tali metriche utilizzando la console Elastic Beanstalk, EB o .ebextensions. CLI

Puoi pubblicare le seguenti metriche sanitarie avanzate dal tuo ambiente su. CloudWatch

Parametri disponibili – Tutte le piattaforme
EnvironmentHealth

Solo ambiente. Questa è l'unica CloudWatch metrica pubblicata dal sistema di reporting sanitario avanzato, a meno che non si configurino metriche aggiuntive. Lo stato dell'ambiente è rappresentato da uno di sette stati. Nella CloudWatch console, questi stati vengono mappati ai seguenti valori:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown (Sconosciuto)

  • 10 – No data (Nessun dato)

  • 15 – Warning (Avvertenza)

  • 20 – Degraded (Degradato)

  • 25 – Severe (Grave)

InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData

Solo ambiente. Questi parametri indicano il numero di istanze nell'ambiente con ciascuno stato di integrità. InstancesNoData indica il numero di istanze per cui i dati non vengono ricevuti.

ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx

Istanza e ambiente. Indica il numero totale di richieste completate dall'istanza o dall'ambiente e il numero di richieste completate con ogni categoria di codice di stato.

ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9

Istanza e ambiente. Indica il periodo di tempo medio, in secondi, necessario per completare la percentuale x più veloce di richieste.

InstanceHealth

Solo istanza. Indica lo stato corrente dell'istanza. È rappresentato da uno di sette stati. Nella CloudWatch console, questi stati sono mappati ai seguenti valori:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown (Sconosciuto)

  • 10 – No data (Nessun dato)

  • 15 – Warning (Avvertenza)

  • 20 – Degraded (Degradato)

  • 25 – Severe (Grave)

Parametri disponibili – Linux
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice

Solo istanza. Indica la percentuale di tempo che CPU ha trascorso in ogni stato nell'ultimo minuto.

LoadAverage1min

Solo istanza. Il CPU carico medio dell'istanza nell'ultimo minuto.

RootFilesystemUtil

Solo istanza. Indica la percentuale di spazio su disco utilizzato.

Parametri disponibili – Windows
CPUIdle
CPUUser
CPUPrivileged

Solo istanza. Indica la percentuale di tempo trascorso in ogni stato nell'ultimo minuto. CPU

Configurazione delle CloudWatch metriche utilizzando la console Elastic Beanstalk

Puoi utilizzare la console Elastic Beanstalk per configurare il tuo ambiente in cui pubblicare CloudWatch metriche di reporting sanitario avanzate e renderle disponibili per l'uso con grafici e allarmi di monitoraggio.

Per configurare metriche CloudWatch personalizzate nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Monitoring (Monitoraggio), scegliere Edit (Modifica).

  5. In Health reporting, seleziona le metriche dell'istanza e dell'ambiente su cui pubblicare CloudWatch. Per selezionare più parametri, premere il tasto CTRL durante la selezione.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

L'abilitazione delle metriche CloudWatch personalizzate le aggiunge all'elenco delle metriche disponibili nella pagina Monitoraggio.

Configurazione di metriche CloudWatch personalizzate utilizzando l'EB CLI

Puoi utilizzare EB CLI per configurare metriche personalizzate salvando la configurazione dell'ambiente localmente, aggiungendo una voce che definisce le metriche da pubblicare e quindi caricando la configurazione su Elastic Beanstalk. Puoi applicare la configurazione salvata a un ambiente durante o dopo la creazione.

Per configurare metriche CloudWatch personalizzate con l'EB e le configurazioni salvate CLI
  1. Inizializza la tua cartella di progetto con eb init.

  2. Crea un ambiente eseguendo il comando eb create.

  3. Salva un modello di configurazione in locale eseguendo il comando eb config save. L'esempio seguente utilizza l'opzione --cfg per specificare il nome della configurazione.

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. Apri il file di configurazione salvato in un editor di testo.

  5. In OptionSettings >aws:elasticbeanstalk:healthreporting:system:, aggiungi una ConfigDocument chiave per abilitare ciascuna delle CloudWatch metriche che desideri. Ad esempio, la chiave ConfigDocument seguente pubblica i parametri ApplicationRequests5xx e ApplicationRequests4xx a livello di ambiente e i parametri ApplicationRequestsTotal a livello di istanza.

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1 SystemType: enhanced ...

    Nell'esempio, 60 indica il numero di secondi tra le misure. Attualmente, questo è il solo valore supportato.

    Nota

    Puoi combinare CloudWatchMetrics e Rules nella stessa impostazione dell'opzione ConfigDocument. Le Rules sono descritte in Configurazione delle regole dello stato migliorato per un ambiente.

    Se hai già utilizzato Rules per configurare le regole dello stato migliorato, il file di configurazione che recuperi utilizzando il comando eb config save dispone già di una chiave ConfigDocument con una sezione Rules. Non eliminarla, ma aggiungi una sezione CloudWatchMetrics allo stesso valore dell'opzione ConfigDocument.

  6. Salva il file di configurazione e chiudi l'editor di testo. In questo esempio, il file di configurazione aggiornato viene salvato con un nome (02-cloudwatch-enabled.cfg.yml) diverso rispetto al file di configurazione scaricato. In questo modo, si crea una configurazione salvata distinta quando si carica il file. Puoi utilizzare lo stesso nome del file scaricato per sovrascrivere la configurazione esistente senza crearne una nuova.

  7. Usa il comando eb config put per caricare il file di configurazione aggiornato in Elastic Beanstalk.

    $ eb config put 02-cloudwatch-enabled

    Quando utilizzi i comandi eb config get e put con configurazioni salvate, non includere l'estensione di file.

  8. Applica la configurazione salvata all'ambiente in esecuzione.

    $ eb config --cfg 02-cloudwatch-enabled

    L'opzione --cfg specifica un file di configurazione con nome che viene applicato all'ambiente. Puoi salvare il file di configurazione in locale o in Elastic Beanstalk. Se un file di configurazione con il nome specificato esiste in entrambe le posizioni, l'EB CLI utilizza il file locale.

Specifica dei documenti di configurazione per parametri personalizzati

Il documento di configurazione (config) per i parametri CloudWatch personalizzati di Amazon è un JSON documento che elenca i parametri da pubblicare a livello di ambiente e istanza. L'esempio seguente mostra un documento di configurazione che abilita tutti i parametri personalizzati disponibili su Linux.

{ "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }

Per il AWS CLI, si passa il documento come valore per la Value chiave in un argomento delle impostazioni delle opzioni, che a sua volta è un oggetto. JSON In questo caso, devi specificare il carattere di escape per le virgolette nel documento incorporato.

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}" } ]'

Per inserire un file di .ebextensions configurazioneYAML, potete fornire il JSON documento così com'è.

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }