YACE 简介
YACE - yet another cloudwatch exporter,YACE即另一个CloudWatch exporter,是用于AWS CloudWatch指标的Prometheus exporter。它采用Go语言编写,并使用官方的AWS SDK。
接入步骤
value.yaml文件定义
replicaCount: 1
image:
registry: quay.io
repository: prometheuscommunity/yet-another-cloudwatch-exporter
pullPolicy: IfNotPresent
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
create: true
labels: {}
annotations: {}
name: ""
automountServiceAccountToken: true
podAnnotations: {
prometheus.io/path: /metrics,
prometheus.io/port: "5000",
prometheus.io/scrape: "true"
}
podLabels: {}
deployment:
labels: {}
portName: http
containerPort: 5000
podSecurityContext: {}
securityContext: {}
service:
type: ClusterIP
port: 80
annotations: {}
testConnection: true
ingress:
enabled: false
className: ""
annotations: {}
hosts:
- host: chart-example.local
paths:
- path: /
pathType: ImplementationSpecific
tls: []
resources: {}
nodeSelector: {}
priorityClassName:
tolerations: []
affinity: {}
extraEnv: []
extraEnvFrom: []
extraArgs: {}
extraVolumeMounts: []
extraVolumes: []
lifecycle: {}
aws:
role:
secret:
name:
includesSessionToken: false
aws_access_key_id: <your aws aws_access_key_id>
aws_secret_access_key: <your aws_secret_access_key>
serviceMonitor:
enabled: false
prometheusRule:
enabled: false
config: |-
apiVersion: v1alpha1
sts-region: us-west-1
discovery:
jobs:
- type: AWS/ES
regions:
- us-west-1
period: 300
length: 300
metrics:
- name: CPUUtilization
statistics: [Average]
- name: FreeStorageSpace
statistics: [Sum]
- name: ClusterStatus.yellow
statistics: [Maximum]
- name: ClusterStatus.red
statistics: [Maximum]
- name: Shards.active
statistics: [Sum]
- name: Shards.unassigned
statistics: [Sum]
- name: Shards.delayedUnassigned
statistics: [Sum]
- name: Shards.activePrimary
statistics: [Sum]
- name: Shards.initializing
statistics: [Sum]
- name: Shards.initializing
statistics: [Sum]
- name: Shards.relocating
statistics: [Sum]
- name: Nodes
statistics: [Maximum]
- name: SearchableDocuments
statistics: [Maximum]
- name: DeletedDocuments
statistics: [Maximum]
- type: AWS/Kinesis
regions:
- us-west-1
period: 300
length: 300
metrics:
- name: PutRecord.Latency
statistics: [Average]
- name: PutRecord.Success
statistics: [Sum]
- name: PutRecord.Bytes
statistics: [Sum]
- name: PutRecords.Latency
statistics: [Average]
- name: PutRecords.Records
statistics: [Sum]
- name: PutRecords.Success
statistics: [Sum]
- name: PutRecords.Bytes
statistics: [Sum]
- name: GetRecords.Latency
statistics: [Average]
- name: GetRecords.Records
statistics: [Sum]
- name: GetRecords.Success
statistics: [Sum]
- name: GetRecords.Bytes
statistics: [Sum]
- name: GetRecords.IteratorAgeMilliseconds
statistics: [Average]
- name: IncomingBytes
statistics: [Sum]
- name: IncomingRecords
statistics: [Sum]
- name: OutgoingBytes
statistics: [Sum]
- name: OutgoingRecords
statistics: [Sum]
- name: WriteProvisionedThroughputExceeded
statistics: [Average]
- name: ReadProvisionedThroughputExceeded
statistics: [Average]
- type: AWS/ElastiCache
regions:
- us-west-1
period: 60
length: 600
metrics:
- name: CPUUtilization
statistics:
- Average
- Minimum
- Maximum
- name: FreeableMemory
statistics:
- Average
- Minimum
- Maximum
- name: EngineCPUUtilization
statistics:
- Average
- Minimum
- Maximum
- name: CurrConnections
statistics:
- Average
- Minimum
- Maximum
- type: AWS/RDS
regions:
- us-west-1
period: 60
length: 600
metrics:
- name: CPUUtilization
statistics:
- Average
- Minimum
- Maximum
- name: FreeableMemory
statistics:
- Average
- Minimum
- Maximum
- name: FreeStorageSpace
statistics:
- Average
- Minimum
- Maximum
- name: DatabaseConnections
statistics:
- Average
- Minimum
- Maximum
- name: NetworkTransmitThroughput
statistics:
- Average
- name: WriteLatency
statistics:
- Average
- name: ReadLatency
statistics:
- Average
- type: AWS/EC2
regions:
- us-west-1
period: 60
length: 600
metrics:
- name: CPUUtilization
statistics:
- Average
- Minimum
- Maximum
- name: DiskReadOps
statistics:
- Sum
- Average
- Minimum
- Maximum
- name: DiskWriteOps
statistics:
- Sum
- Average
- name: DiskReadBytes
statistics:
- Sum
- Average
使用Helm部署yace-exporter
$ kubectl create ns aws-cloudwatch
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update
# 部署 yace-exporter
$ helm install -f values.yaml yace-exporter-cw prometheus-community/prometheus-yet-another-cloudwatch-exporter -n aws-cloudwatch
# 更新 yace-exporter
$ helm upgrade -f values.yaml yace-exporter-cw prometheus-community/prometheus-yet-another-cloudwatch-exporter -n aws-cloudwatch
原文链接
个人技术私库