diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.json b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.json new file mode 100644 index 0000000000..88d2f2d319 --- /dev/null +++ b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.json @@ -0,0 +1,1441 @@ +{ + "description": "Overview of API Gateway resources in a region", + "image": "data:image/svg+xml,%3Csvg%20width%3D%2224px%22%20height%3D%2224px%22%20viewBox%3D%220%200%2024%2024%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%3E%3Cdefs%3E%3ClinearGradient%20x1%3D%220%25%22%20y1%3D%22100%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%20id%3D%22linearGradient-1%22%3E%3Cstop%20stop-color%3D%22%234D27A8%22%20offset%3D%220%25%22%3E%3C%2Fstop%3E%3Cstop%20stop-color%3D%22%23A166FF%22%20offset%3D%22100%25%22%3E%3C%2Fstop%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cg%20stroke%3D%22none%22%20stroke-width%3D%221%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Cg%20fill%3D%22url(%23linearGradient-1)%22%3E%3Crect%20id%3D%22Rectangle%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2224%22%20height%3D%2224%22%3E%3C%2Frect%3E%3C%2Fg%3E%3Cpath%20d%3D%22M6%2C6.76751613%20L8%2C5.43446738%20L8%2C18.5659476%20L6%2C17.2328988%20L6%2C6.76751613%20Z%20M5%2C6.49950633%20L5%2C17.4999086%20C5%2C17.6669147%205.084%2C17.8239204%205.223%2C17.9159238%20L8.223%2C19.9159969%20C8.307%2C19.971999%208.403%2C20%208.5%2C20%20C8.581%2C20%208.662%2C19.9809993%208.736%2C19.9409978%20C8.898%2C19.8539947%209%2C19.6849885%209%2C19.4999817%20L9%2C16.9998903%20L10%2C16.9998903%20L10%2C15.9998537%20L9%2C15.9998537%20L9%2C7.99956118%20L10%2C7.99956118%20L10%2C6.99952461%20L9%2C6.99952461%20L9%2C4.49943319%20C9%2C4.31542646%208.898%2C4.14542025%208.736%2C4.0594171%20C8.574%2C3.97241392%208.377%2C3.98141425%208.223%2C4.08341798%20L5.223%2C6.08349112%20C5.084%2C6.17649452%205%2C6.33250022%205%2C6.49950633%20L5%2C6.49950633%20Z%20M19%2C17.2328988%20L17%2C18.5659476%20L17%2C5.43446738%20L19%2C6.76751613%20L19%2C17.2328988%20Z%20M19.777%2C6.08349112%20L16.777%2C4.08341798%20C16.623%2C3.98141425%2016.426%2C3.97241392%2016.264%2C4.0594171%20C16.102%2C4.14542025%2016%2C4.31542646%2016%2C4.49943319%20L16%2C6.99952461%20L15%2C6.99952461%20L15%2C7.99956118%20L16%2C7.99956118%20L16%2C15.9998537%20L15%2C15.9998537%20L15%2C16.9998903%20L16%2C16.9998903%20L16%2C19.4999817%20C16%2C19.6849885%2016.102%2C19.8539947%2016.264%2C19.9409978%20C16.338%2C19.9809993%2016.419%2C20%2016.5%2C20%20C16.597%2C20%2016.693%2C19.971999%2016.777%2C19.9159969%20L19.777%2C17.9159238%20C19.916%2C17.8239204%2020%2C17.6669147%2020%2C17.4999086%20L20%2C6.49950633%20C20%2C6.33250022%2019.916%2C6.17649452%2019.777%2C6.08349112%20L19.777%2C6.08349112%20Z%20M13%2C7.99956118%20L14%2C7.99956118%20L14%2C6.99952461%20L13%2C6.99952461%20L13%2C7.99956118%20Z%20M11%2C7.99956118%20L12%2C7.99956118%20L12%2C6.99952461%20L11%2C6.99952461%20L11%2C7.99956118%20Z%20M13%2C16.9998903%20L14%2C16.9998903%20L14%2C15.9998537%20L13%2C15.9998537%20L13%2C16.9998903%20Z%20M11%2C16.9998903%20L12%2C16.9998903%20L12%2C15.9998537%20L11%2C15.9998537%20L11%2C16.9998903%20Z%20M13.18%2C14.884813%20L10.18%2C12.3847215%20C10.065%2C12.288718%2010%2C12.1487129%2010%2C11.9997075%20C10%2C11.851702%2010.065%2C11.7106969%2010.18%2C11.6156934%20L13.18%2C9.11560199%20L13.82%2C9.88463011%20L11.281%2C11.9997075%20L13.82%2C14.1157848%20L13.18%2C14.884813%20Z%22%20id%3D%22Amazon-API-Gateway_Icon_16_Squid%22%20fill%3D%22%23FFFFFF%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E", + "layout": [ + { + "h": 6, + "i": "b27e332f-8e3f-487a-845d-e332dc1464c3", + "moved": false, + "static": false, + "w": 6, + "x": 0, + "y": 0 + }, + { + "h": 6, + "i": "d0a54459-0841-467f-88f7-e135b8c86fc7", + "moved": false, + "static": false, + "w": 6, + "x": 6, + "y": 0 + }, + { + "h": 6, + "i": "210dc175-fbb7-44ef-88e0-b8530da4eaca", + "moved": false, + "static": false, + "w": 6, + "x": 0, + "y": 6 + }, + { + "h": 6, + "i": "8efb6639-6168-4d8b-9b4f-5b5c82dea333", + "moved": false, + "static": false, + "w": 6, + "x": 6, + "y": 6 + }, + { + "h": 6, + "i": "88f56881-7744-41e9-9c19-9f5446e291dc", + "w": 6, + "x": 0, + "y": 12 + }, + { + "h": 6, + "i": "d3b4ad8b-7b52-4bea-9bc7-47e18da7f38c", + "w": 6, + "x": 6, + "y": 12 + } + ], + "panelMap": {}, + "tags": [], + "title": "API Gateway Overview", + "uploadedGrafana": false, + "variables": { + "Account": { + "allSelected": false, + "customValue": "", + "description": "AWS Account", + "id": "93447e60-3b35-407c-a86c-97254f641628", + "key": "93447e60-3b35-407c-a86c-97254f641628", + "modificationUUID": "5e1f8a79-e9b5-4230-af48-f2c117805b31", + "multiSelect": false, + "name": "Account", + "order": 0, + "queryValue": "SELECT JSONExtractString(labels, 'cloud_account_id') as cloud_account_id\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApiGateway_Count_sum'\nGROUP BY cloud_account_id\n\n", + "showALLOption": false, + "sort": "DISABLED", + "textboxValue": "", + "type": "QUERY" + }, + "Region": { + "allSelected": false, + "customValue": "", + "description": "AWS Region", + "id": "613f7913-ace1-4cf5-bb4c-df91878ec40e", + "key": "613f7913-ace1-4cf5-bb4c-df91878ec40e", + "modificationUUID": "bb86427a-e4da-4440-93d3-0f53e65214ed", + "multiSelect": false, + "name": "Region", + "order": 1, + "queryValue": "SELECT JSONExtractString(labels, 'cloud_region') as cloud_region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'aws_ApiGateway_Count_sum'\n and JSONExtractString(labels, 'cloud_account_id') IN {{.Account}}\nGROUP BY cloud_region\n", + "showALLOption": false, + "sort": "DISABLED", + "textboxValue": "", + "type": "QUERY" + } + }, + "version": "v4", + "widgets": [ + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The total number API requests in a given period.\n\nSee Count at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "b27e332f-8e3f-487a-845d-e332dc1464c3", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_Count_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_Count_sum", + "type": "Gauge" + }, + "aggregateOperator": "sum", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "d3e9ea95", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "64c4ab5b", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "2f4571a4", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "be3cf524", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "81918ce2", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "114c7ff4", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "sum", + "stepInterval": 60, + "timeAggregation": "sum" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "9fea4bca-7c22-49b6-8d24-43c985d89ac3", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Requests", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The time between when API Gateway receives a request from a client and when it returns a response to the client. The latency includes the integration latency and other API Gateway overhead.\n\nSee Latency at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "d0a54459-0841-467f-88f7-e135b8c86fc7", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_Latency_max--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_Latency_max", + "type": "Gauge" + }, + "aggregateOperator": "max", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "4b55a919", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "01c610d9", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "f102e7f0", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "0053bd12", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "3c67d1fc", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "e2a96f23", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "max", + "stepInterval": 60, + "timeAggregation": "max" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "7b85940b-ac14-40da-9764-0fbb9c3cad31", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Latency", + "yAxisUnit": "ms" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The number of server-side errors captured in a given period.\n\nSee 5XXError at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "210dc175-fbb7-44ef-88e0-b8530da4eaca", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_5XXError_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_5XXError_sum", + "type": "Gauge" + }, + "aggregateOperator": "sum", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "3e4a6042", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "5702170a", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "9835e4d9", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "c986fbbe", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "b3ebaf28", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "f2030d94", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "sum", + "stepInterval": 60, + "timeAggregation": "sum" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "ec0786eb-fb13-46eb-813b-c516bac57395", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "5XX Errors", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The time between when API Gateway relays a request to the backend and when it receives a response from the backend.\n\nSee IntegrationLatency at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "8efb6639-6168-4d8b-9b4f-5b5c82dea333", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_IntegrationLatency_max--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_IntegrationLatency_max", + "type": "Gauge" + }, + "aggregateOperator": "max", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "1a3f91b4", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "33d0afbd", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "f818f0fc", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "a090cf40", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "5f2f2892", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "960ee6d2", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "max", + "stepInterval": 60, + "timeAggregation": "max" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "c1c0f0e6-712d-430e-9e76-af752b1dc09f", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Integration Latency", + "yAxisUnit": "ms" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The number of requests served from the API cache in a given period.\n\nSee CacheHitCount at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "88f56881-7744-41e9-9c19-9f5446e291dc", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_CacheHitCount_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_CacheHitCount_sum", + "type": "Gauge" + }, + "aggregateOperator": "sum", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "8016ef52", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "6abb9f32", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "86a54806", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "1e5b50b4", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "8ec09e30", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "d1622884", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "sum", + "stepInterval": 60, + "timeAggregation": "sum" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "39a206dd-298c-4560-b3da-83a029cf3423", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Cache Hits", + "yAxisUnit": "none" + }, + { + "bucketCount": 30, + "bucketWidth": 0, + "columnUnits": {}, + "description": "The number of requests served from the backend in a given period, when API caching is enabled.\n\nSee CacheMissCount at https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html for more details", + "fillSpans": false, + "id": "d3b4ad8b-7b52-4bea-9bc7-47e18da7f38c", + "isStacked": false, + "mergeAllActiveQueries": false, + "nullZeroValues": "zero", + "opacity": "1", + "panelTypes": "graph", + "query": { + "builder": { + "queryData": [ + { + "aggregateAttribute": { + "dataType": "float64", + "id": "aws_ApiGateway_CacheMissCount_sum--float64--Gauge--true", + "isColumn": true, + "isJSON": false, + "key": "aws_ApiGateway_CacheMissCount_sum", + "type": "Gauge" + }, + "aggregateOperator": "sum", + "dataSource": "metrics", + "disabled": false, + "expression": "A", + "filters": { + "items": [ + { + "id": "6cbbb46e", + "key": { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "4dfbfe25", + "key": { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + }, + "op": "exists", + "value": "" + }, + { + "id": "24f91927", + "key": { + "dataType": "string", + "id": "Resource--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Resource", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "f03b27a8", + "key": { + "dataType": "string", + "id": "Method--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Method", + "type": "tag" + }, + "op": "nexists", + "value": "" + }, + { + "id": "f02d484d", + "key": { + "dataType": "string", + "id": "cloud_account_id--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_account_id", + "type": "tag" + }, + "op": "=", + "value": "$Account" + }, + { + "id": "4d8ddc75", + "key": { + "dataType": "string", + "id": "cloud_region--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "cloud_region", + "type": "tag" + }, + "op": "=", + "value": "$Region" + } + ], + "op": "AND" + }, + "functions": [], + "groupBy": [ + { + "dataType": "string", + "id": "ApiName--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "ApiName", + "type": "tag" + }, + { + "dataType": "string", + "id": "Stage--string--tag--false", + "isColumn": false, + "isJSON": false, + "key": "Stage", + "type": "tag" + } + ], + "having": [], + "legend": "{{ApiName}} - {{Stage}}", + "limit": null, + "orderBy": [], + "queryName": "A", + "reduceTo": "avg", + "spaceAggregation": "sum", + "stepInterval": 60, + "timeAggregation": "sum" + } + ], + "queryFormulas": [] + }, + "clickhouse_sql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "id": "a5ef38e5-16a0-41c1-82b3-b6480ec4e524", + "promql": [ + { + "disabled": false, + "legend": "", + "name": "A", + "query": "" + } + ], + "queryType": "builder" + }, + "selectedLogFields": [ + { + "dataType": "string", + "name": "body", + "type": "" + }, + { + "dataType": "string", + "name": "timestamp", + "type": "" + } + ], + "selectedTracesFields": [ + { + "dataType": "string", + "id": "serviceName--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "serviceName", + "type": "tag" + }, + { + "dataType": "string", + "id": "name--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "name", + "type": "tag" + }, + { + "dataType": "float64", + "id": "durationNano--float64--tag--true", + "isColumn": true, + "isJSON": false, + "key": "durationNano", + "type": "tag" + }, + { + "dataType": "string", + "id": "httpMethod--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "httpMethod", + "type": "tag" + }, + { + "dataType": "string", + "id": "responseStatusCode--string--tag--true", + "isColumn": true, + "isJSON": false, + "key": "responseStatusCode", + "type": "tag" + } + ], + "softMax": 0, + "softMin": 0, + "stackedBarChart": false, + "thresholds": [], + "timePreferance": "GLOBAL_TIME", + "title": "Cache Misses", + "yAxisUnit": "none" + } + ] +} \ No newline at end of file diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.png b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.png new file mode 100644 index 0000000000..d57e5ae411 Binary files /dev/null and b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/assets/dashboards/overview.png differ diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/icon.svg b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/icon.svg new file mode 100644 index 0000000000..e7cf9b72f0 --- /dev/null +++ b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/icon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/integration.json b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/integration.json new file mode 100644 index 0000000000..b3a9cadd30 --- /dev/null +++ b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/integration.json @@ -0,0 +1,187 @@ +{ + "id": "api-gateway", + "title": "API Gateway", + "icon": "file://icon.svg", + "overview": "file://overview.md", + "supported_signals": { + "metrics": true, + "logs": true + }, + "data_collected": { + "metrics": [ + { + "name": "aws_ApiGateway_4XXError_count", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_4XXError_max", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_4XXError_min", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_4XXError_sum", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_5XXError_count", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_5XXError_max", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_5XXError_min", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_5XXError_sum", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheHitCount_count", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheHitCount_max", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheHitCount_min", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheHitCount_sum", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheMissCount_count", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheMissCount_max", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheMissCount_min", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_CacheMissCount_sum", + "unit": "Count", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_Count_count", + "unit": "Count", + "type": "Gauge" + }, + { "name": "aws_ApiGateway_Count_max", "unit": "Count", "type": "Gauge" }, + { "name": "aws_ApiGateway_Count_min", "unit": "Count", "type": "Gauge" }, + { "name": "aws_ApiGateway_Count_sum", "unit": "Count", "type": "Gauge" }, + { + "name": "aws_ApiGateway_IntegrationLatency_count", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_IntegrationLatency_max", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_IntegrationLatency_min", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_IntegrationLatency_sum", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_Latency_count", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_Latency_max", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_Latency_min", + "unit": "Milliseconds", + "type": "Gauge" + }, + { + "name": "aws_ApiGateway_Latency_sum", + "unit": "Milliseconds", + "type": "Gauge" + } + ], + "logs": [ + { + "name": "Account Id", + "path": "resources.cloud.account.id", + "type": "string" + }, + { + "name": "Log Group Name", + "path": "resources.aws.cloudwatch.log_group_name", + "type": "string" + }, + { + "name": "Log Stream Name", + "path": "resources.aws.cloudwatch.log_stream_name", + "type": "string" + } + ] + }, + "telemetry_collection_strategy": { + "aws_metrics": { + "cloudwatch_metric_stream_filters": [ + { + "Namespace": "AWS/ApiGateway" + } + ] + }, + "aws_logs": { + "cloudwatch_logs_subscriptions": [ + { + "log_group_name_prefix": "API-Gateway", + "filter_pattern": "" + } + ] + } + }, + "assets": { + "dashboards": [ + { + "id": "overview", + "title": "API Gateway Overview", + "description": "Overview of API Gateway", + "image": "file://assets/dashboards/overview.png", + "definition": "file://assets/dashboards/overview.json" + } + ] + } +} diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/overview.md b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/overview.md new file mode 100644 index 0000000000..47ad1802b6 --- /dev/null +++ b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/api-gateway/overview.md @@ -0,0 +1,3 @@ +### Monitor API Gateway with SigNoz + +Collect key API Gateway metrics and view them with an out of the box dashboard. diff --git a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/rds/overview.md b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/rds/overview.md index 193353be1f..b808144580 100644 --- a/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/rds/overview.md +++ b/pkg/query-service/app/cloudintegrations/serviceDefinitions/aws/rds/overview.md @@ -1,3 +1,3 @@ -### Monitor RDS Postgres with SigNoz +### Monitor RDS with SigNoz -Collect key RDS Postgres metrics and view them with an out of the box dashboard. +Collect key RDS metrics and view them with an out of the box dashboard.