Utilizzo di dati di allocazione dei costi suddivisi con Amazon Managed Service for Prometheus - Esportazioni di dati AWS

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à.

Utilizzo di dati di allocazione dei costi suddivisi con Amazon Managed Service for Prometheus

La suddivisione dei dati sui costi per Amazon EKS richiede la raccolta e l'archiviazione dei parametri dai cluster, incluso l'utilizzo di memoria e CPU. A questo scopo è possibile utilizzare Amazon Managed Service for Prometheus.

Una volta che hai scelto di dividere i dati di allocazione dei costi e l'area di lavoro Amazon Managed Service for Prometheus inizia a ricevere le due metriche richieste (container_cpu_usage_seconds_totalecontainer_memory_working_set_bytes), i dati di allocazione dei costi suddivisi riconosceranno le metriche e le utilizzeranno automaticamente.

Nota

Le due metriche richieste (container_cpu_usage_seconds_totalecontainer_memory_working_set_bytes) sono presenti nella configurazione scrape predefinita di Prometheus e nella configurazione predefinita fornita con un raccoglitore gestito. AWS Tuttavia, se personalizzi queste configurazioni, non rietichettate, modificate o rimuovete le seguenti etichette dalle metriche and:, e. container_cpu_usage_seconds_total container_memory_working_set_bytes name namespace pod Se rietichettate, modificate o rimuovete queste etichette, ciò può influire sull'acquisizione delle metriche.

Puoi utilizzare Amazon Managed Service for Prometheus per raccogliere i parametri EKS da un singolo account di utilizzo, in un'unica regione. L'area di lavoro Amazon Managed Service for Prometheus deve trovarsi in quell'account e in quella regione. È necessaria un'istanza di Amazon Managed Service for Prometheus per ogni account di utilizzo e regione per cui desideri monitorare i costi. Puoi raccogliere metriche per più cluster nell'area di lavoro Amazon Managed Service for Prometheus, purché si trovino nello stesso account di utilizzo e nella stessa regione.

Le seguenti sezioni descrivono come inviare le metriche corrette dal tuo cluster EKS all'area di lavoro Amazon Managed Service for Prometheus.

Prerequisiti

Come prerequisiti per l'utilizzo di Amazon Managed Service for Prometheus con dati di allocazione dei costi suddivisi:

  • È necessario abilitare i dati di suddivisione dei costi nella console AWS Billing and Cost Management. Per i dettagli, consulta Abilitazione dei dati di allocazione suddivisa dei costi. L'attivazione della suddivisione dei dati di allocazione dei costi crea un ruolo collegato al servizio in ogni account di utilizzo per interrogare Amazon Managed Service for Prometheus per le metriche del cluster Amazon EKS in quell'account. Per ulteriori informazioni, consulta Ruoli collegati ai servizi per i dati di allocazione dei costi suddivisi.

  • È necessario un cluster EKS per il quale si desidera tenere traccia dei dati di allocazione dei costi suddivisi. Può trattarsi di un cluster esistente oppure puoi crearne uno nuovo. Per ulteriori informazioni, consulta Creazione di un cluster Amazon EKS nella Guida per l'utente di Amazon EKS.

    Nota

    Avrai bisogno di EKS cluster ARNsecurity group IDs, e almeno due subnet IDs (in diverse zone di disponibilità) da utilizzare nelle fasi successive.

    (opzionale) Imposta la modalità di autenticazione del cluster EKS su una delle due API opzioniAPI_AND_CONFIG_MAP.

  • È necessaria un'istanza di Amazon Managed Service for Prometheus nello stesso account e nella stessa regione del cluster EKS. Se non ne hai già uno, puoi crearne uno. Per ulteriori informazioni sulla creazione di un'istanza di Amazon Managed Service for Prometheus, consulta Create a workspace nella Amazon Managed Service for Prometheus User Guide.

    Nota

    Ti servirà per utilizzarlo nei passaggi successivi. Amazon Managed Service for Prometheus workspace ARN

Inoltro dei parametri EKS ad Amazon Managed Service for Prometheus

Una volta che hai un cluster EKS e un'istanza Amazon Managed Service for Prometheus, puoi inoltrare i parametri dal cluster all'istanza. Puoi inviare i parametri in due modi.

Opzione 1: utilizzo di un raccoglitore AWS gestito

L'utilizzo di un collettore AWS gestito (uno scraper) è il modo più semplice per inviare metriche da un cluster EKS a un'istanza di Amazon Managed Service for Prometheus. La procedura seguente illustra la creazione di un raccoglitore gestito. AWS Per informazioni più dettagliate, consulta AWS Managed Collector nella Guida per l'utente di Amazon Managed Service for Prometheus.

Nota

AWS i raccoglitori gestiti hanno un intervallo minimo di raschiamento di 30 secondi. Se avete dei pod di breve durata, vi consigliamo di impostare l'intervallo del raschietto su 15 secondi. Per utilizzare un intervallo di 15 secondi con lo scraper, usa l'opzione 2 per creare il tuo agente Prometheus.

Esistono tre passaggi per creare un raccoglitore gestito: AWS

  1. Crea una configurazione dello scraper.

  2. Crea il raschietto.

  3. Configura il tuo cluster EKS per consentire allo scraper di accedere alle metriche.

Passaggio 1: creare una configurazione dello scraper

Per creare uno scraper, è necessario disporre di una configurazione scraper. È possibile utilizzare una configurazione predefinita o crearne una personalizzata. Di seguito sono riportati tre modi per ottenere una configurazione dello scraper:

  • Ottieni la configurazione predefinita utilizzando la AWS CLI, chiamando:

    aws amp get-default-scraper-configuration
  • Crea la tua configurazione. Per i dettagli, consulta le istruzioni di configurazione di Scraper nella Guida per l'utente di Amazon Managed Service for Prometheus.

  • Copia la configurazione di esempio fornita nelle stesse istruzioni di configurazione di Scraper nella Guida per l'utente di Amazon Managed Service for Prometheus.

Ad esempio, puoi modificare la configurazione dello scraper, modificare l'intervallo di scrape o filtrare le metriche che vengono eliminate.

Per filtrare le metriche che vengono eliminate in modo da includere solo le due necessarie per suddividere i dati di allocazione dei costi, utilizza la seguente configurazione dello scraper:

scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep

Una volta ottenuta la configurazione dello scraper, è necessario codificarla in base64 per utilizzarla nel passaggio 2. La configurazione è un file YAML di testo. Per codificare il file, utilizzate un sito Web come https://www.base64encode.org/.

Fase 2: Creare lo scraper

Ora che hai un file di configurazione, devi creare il tuo scraper. Crea uno scraper utilizzando il seguente comando AWS CLI, in base alle variabili descritte nella sezione dei prerequisiti. È necessario utilizzare le informazioni del cluster EKS per i <EKS-CLUSTER-ARN><SG-SECURITY-GROUP-ID><SUBNET-ID>campi, and , sostituirle <BASE64-CONFIGURATION-BLOB>con la configurazione dello scraper creata nel passaggio precedente e <AMP_WORKSPACE_ARN>sostituirle con l'ARN dell'area di lavoro Amazon Managed Service for Prometheus.

aws amp create-scraper \ --source eksConfiguration="{clusterArn=<EKS-CLUSTER-ARN>,securityGroupIds=[<SG-SECURITY-GROUP-ID>],subnetIds=[<SUBNET-ID>]}" \ --scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB> \ --destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>"}

Annota scraperId ciò che viene restituito per l'uso nel passaggio 3.

Passaggio 3: configura il cluster EKS per consentire allo scraper di accedere alle metriche

Se la modalità di autenticazione del cluster EKS è impostata su una delle due API API_AND_CONFIG_MAP opzioni, lo scraper disporrà automaticamente della politica di accesso interna al cluster corretta e gli scraper avranno accesso al cluster. Non sono necessarie ulteriori configurazioni e i parametri dovrebbero essere trasferiti ad Amazon Managed Service for Prometheus.

Se la modalità di autenticazione del cluster EKS non è impostata su API oAPI_AND_CONFIG_MAP, sarà necessario configurare manualmente il cluster per consentire allo scraper di accedere alle metriche tramite un comando e. ClusterRole ClusterRoleBinding Per informazioni su come abilitare queste autorizzazioni, consulta Configurazione manuale di un cluster EKS per l'accesso allo scraper nella Guida per l'utente di Amazon Managed Service for Prometheus.

Opzione 2: creare il proprio agente Prometheus

Se non puoi utilizzare il AWS managed collector o hai già un server Prometheus personale, puoi usare la tua istanza Prometheus come agente per acquisire metriche dal tuo cluster EKS e inviarle ad Amazon Managed Service for Prometheus.

Per istruzioni dettagliate su come utilizzare la tua istanza Prometheus come agente, consulta Using a Prometheus istance as a collector nella Amazon Managed Service for Prometheus User Guide.

Di seguito è riportato un esempio di configurazione di scrape di Prometheus che include l'intervallo di scrape del server Prometheus e le metriche dei container necessarie per suddividere i dati di allocazione dei costi. Se si dispone di pod di breve durata, si consiglia di ridurre l'intervallo di scrape predefinito del server Prometheus da 30 secondi a 15 secondi. Si noti che ciò può comportare un elevato utilizzo della memoria del server Prometheus.

scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep

Se hai seguito Configurare l'ingestione da un nuovo server Prometheus utilizzando Helm nella Guida per l'utente di Amazon Managed Service for Prometheus, puoi aggiornare la configurazione dello scrape.

Per aggiornare la configurazione dello scrape
  1. Modifica my_prometheus_values_yaml dalla guida e includi la configurazione di scrape di esempio nel blocco. server

  2. Esegui il comando seguente, utilizzando prometheus-chart-name e prometheus-namespace dalla Amazon Managed Service for Prometheus User Guide.

helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml

Per saperne di più scrape_interval o su come utilizzare uno scrape_interval non globale, fai riferimento alla configurazione dello scrape di Prometheus.

In alternativa, puoi utilizzare AWS Distro for OpenTelemetry collector che dispone di un Prometheus Receiver, un Prometheus Remote Write Exporter e AWS l'estensione di autenticazione Sigv4 per ottenere l'accesso remoto in scrittura ad Amazon Managed Service for Prometheus.

Nota

Una volta configurato il tuo agente Prometheus, a AWS differenza di Managed Collector, hai la responsabilità di mantenere l'agente aggiornato e pronto a raccogliere le metriche.

Stima dei costi di Amazon Managed Service for Prometheus

Puoi utilizzare AWS Pricing Calculator per stimare il costo dell'utilizzo di Amazon Managed Service for Prometheus per i dati di allocazione dei costi suddivisi.

Per configurare Amazon Managed Service for Prometheus per il tuo preventivo
  1. Apri il calcolatore AWS dei prezzi all'indirizzo https://calculator.aws/#/.

  2. Scegliere Create estimate (Crea stima).

  3. Nella pagina Aggiungi servizio, inserisci Amazon Managed Service for Prometheus nel campo di ricerca, quindi scegli Configura.

  4. Nel campo Descrizione, inserisci una descrizione per il preventivo.

  5. Scegliere una Region (Regione).

  6. Seleziona Calcola il costo utilizzando i dettagli dell'infrastruttura. Questa opzione consente di stimare i costi di acquisizione, archiviazione e interrogazione dei campioni in base alla configurazione dell'infrastruttura attuale o proposta.

  7. Per Numero di istanze EC2, inserisci il numero totale di istanze EC2 in tutti i cluster per l'intera famiglia di fatturazione consolidata (inclusi tutti gli account e le regioni). Se lo utilizzi AWS Fargate, utilizza il numero di attività Fargate come proxy per il conteggio delle istanze EC2.

  8. I dati suddivisi sull'allocazione dei costi richiedono due metriche: e. container_cpu_usage_seconds_total container_memory_working_set_bytes Per le metriche di Prometheus per istanze EC2, inserisci 2.

  9. I dati suddivisi sull'allocazione dei costi suggeriscono un intervallo di scraping di 15 secondi. Per Intervallo di raccolta delle metriche (in secondi), immettere 15. Se hai utilizzato un intervallo diverso (ad esempio 30 secondi), sostituiscilo con l'intervallo che hai impostato.

  10. I dati suddivisi sull'allocazione dei costi non impongono requisiti specifici per gli altri parametri, quindi inserite i valori appropriati per il resto dei parametri di input in base ai requisiti aziendali.

  11. Scegli Salva e aggiungi servizio.