nerdswords / yet-another-cloudwatch-exporter

Prometheus exporter for AWS CloudWatch - Discovers services through AWS tags, gets CloudWatch metrics data and provides them as Prometheus metrics with AWS tags as labels
Apache License 2.0
959 stars 330 forks source link

feat: add AWS/QuickSight as supported service #1477

Closed choppedpork closed 2 weeks ago

choppedpork commented 1 month ago

QuickSight is a business intelligence tool but can also be used to set up the suite of Cloud Intelligence Dashboards which provide some neat cost (and other) dashboards. To say the entire solution is complex is a bit of an understatement so monitoring is of paramount importance (I've managed to break some of the datasets by following the workshop instructions to deploy other ones, ahem) and thus necessitates an addition to yace 🙂

I've tested the change locally using the config included in the PR (examples/quicksight.yml). The period / length values are the lowest once I could get metrics from and I believe setting nilToZero is going to be needed here, similarly to https://github.com/nerdswords/yet-another-cloudwatch-exporter/pull/1405.

Partially anonymized result w/o nilToZero:

# HELP aws_quicksight_ingestion_error_count_sum Help is not implemented yet.
# TYPE aws_quicksight_ingestion_error_count_sum gauge
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="",name="global",region="eu-west-2"} 5
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="07c385e2-a43c-401c-abf4-fd54baed26a2",name="global",region="eu-west-2"} 1
(...)
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ce8e358c-3621-4983-9e0e-ba65b86346d6",name="global",region="eu-west-2"} NaN
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="compute_optimizer_all_options",name="global",region="eu-west-2"} NaN
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="d01a936f-2b8f-49dd-8f95-d9c7130c5e46",name="global",region="eu-west-2"} NaN
aws_quicksight_ingestion_error_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ta-organizational-view",name="global",region="eu-west-2"} NaN
# HELP aws_quicksight_ingestion_invocation_count_sum Help is not implemented yet.
# TYPE aws_quicksight_ingestion_invocation_count_sum gauge
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="",name="global",region="eu-west-2"} 21
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="07c385e2-a43c-401c-abf4-fd54baed26a2",name="global",region="eu-west-2"} 1
(...)
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ce8e358c-3621-4983-9e0e-ba65b86346d6",name="global",region="eu-west-2"} 1
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="compute_optimizer_all_options",name="global",region="eu-west-2"} 1
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="d01a936f-2b8f-49dd-8f95-d9c7130c5e46",name="global",region="eu-west-2"} 1
aws_quicksight_ingestion_invocation_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ta-organizational-view",name="global",region="eu-west-2"} 1
# HELP aws_quicksight_ingestion_row_count_sum Help is not implemented yet.
# TYPE aws_quicksight_ingestion_row_count_sum gauge
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="",name="global",region="eu-west-2"} 5.664183e+06
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="07c385e2-a43c-401c-abf4-fd54baed26a2",name="global",region="eu-west-2"} NaN
(...)
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ce8e358c-3621-4983-9e0e-ba65b86346d6",name="global",region="eu-west-2"} 2.058553e+06
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="compute_optimizer_all_options",name="global",region="eu-west-2"} 2774
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="d01a936f-2b8f-49dd-8f95-d9c7130c5e46",name="global",region="eu-west-2"} 1.969758e+06
aws_quicksight_ingestion_row_count_sum{account_alias="finops",account_id="123456789012",dimension_DatasetId="ta-organizational-view",name="global",region="eu-west-2"} 10804