mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-12 07:08:58 +08:00
Feat: aws integrations: dashboards (#7058)
* chore: get started on dashboards plumbing for AWS integration services * feat: cloud integrations: include cloud integrations dashboards in dashboards list * feat: cloud integrations: get cloud integration dashboard by id * feat: dashboard url in cloud integrations svc detail * feat: ec2 overview dashboard * chore: add ec2 overview dashboard image * chore: finish up with v0 definitions for EC2 and RDS * chore: some cleanup * chore: fix broken test * chore: add connection url composition --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com>
This commit is contained in:
parent
50ecf768fa
commit
169bd3f65b
@ -190,18 +190,10 @@ func validateServiceDefinition(s *CloudServiceDetails) error {
|
||||
// Validate dashboard data
|
||||
seenDashboardIds := map[string]interface{}{}
|
||||
for _, dd := range s.Assets.Dashboards {
|
||||
did, exists := dd["id"]
|
||||
if !exists {
|
||||
return fmt.Errorf("id is required. not specified in dashboard titled %v", dd["title"])
|
||||
if _, seen := seenDashboardIds[dd.Id]; seen {
|
||||
return fmt.Errorf("multiple dashboards found with id %s", dd.Id)
|
||||
}
|
||||
dashboardId, ok := did.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("id must be string in dashboard titled %v", dd["title"])
|
||||
}
|
||||
if _, seen := seenDashboardIds[dashboardId]; seen {
|
||||
return fmt.Errorf("multiple dashboards found with id %s", dashboardId)
|
||||
}
|
||||
seenDashboardIds[dashboardId] = nil
|
||||
seenDashboardIds[dd.Id] = nil
|
||||
}
|
||||
|
||||
if s.TelemetryCollectionStrategy == nil {
|
||||
|
@ -3,10 +3,13 @@ package cloudintegrations
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"go.signoz.io/signoz/pkg/query-service/app/dashboards"
|
||||
"go.signoz.io/signoz/pkg/query-service/model"
|
||||
"golang.org/x/exp/maps"
|
||||
)
|
||||
@ -120,12 +123,30 @@ func (c *Controller) GenerateConnectionUrl(
|
||||
return nil, model.WrapApiError(apiErr, "couldn't upsert cloud account")
|
||||
}
|
||||
|
||||
// TODO(Raj): Add actual cloudformation template for AWS integration after it has been shipped.
|
||||
// TODO(Raj): parameterized this in follow up changes
|
||||
agentVersion := "latest"
|
||||
|
||||
connectionUrl := fmt.Sprintf(
|
||||
"https://%s.console.aws.amazon.com/cloudformation/home?region=%s#/stacks/quickcreate?stackName=SigNozIntegration/",
|
||||
"https://%s.console.aws.amazon.com/cloudformation/home?region=%s#/stacks/quickcreate?",
|
||||
req.AgentConfig.Region, req.AgentConfig.Region,
|
||||
)
|
||||
|
||||
for qp, value := range map[string]string{
|
||||
"param_SigNozIntegrationAgentVersion": agentVersion,
|
||||
"param_SigNozApiUrl": req.AgentConfig.SigNozAPIUrl,
|
||||
"param_SigNozApiKey": req.AgentConfig.SigNozAPIKey,
|
||||
"param_SigNozAccountId": account.Id,
|
||||
"param_IngestionUrl": req.AgentConfig.IngestionUrl,
|
||||
"param_IngestionKey": req.AgentConfig.IngestionKey,
|
||||
"stackName": "signoz-integration",
|
||||
"templateURL": fmt.Sprintf(
|
||||
"https://signoz-integrations.s3.us-east-1.amazonaws.com/aws-quickcreate-template-%s.json",
|
||||
agentVersion,
|
||||
),
|
||||
} {
|
||||
connectionUrl += fmt.Sprintf("&%s=%s", qp, url.QueryEscape(value))
|
||||
}
|
||||
|
||||
return &GenerateConnectionUrlResponse{
|
||||
AccountId: account.Id,
|
||||
ConnectionUrl: connectionUrl,
|
||||
@ -403,6 +424,18 @@ func (c *Controller) GetServiceDetails(
|
||||
|
||||
if config != nil {
|
||||
service.Config = config
|
||||
|
||||
if config.Metrics != nil && config.Metrics.Enabled {
|
||||
// add links to service dashboards, making them clickable.
|
||||
for i, d := range service.Assets.Dashboards {
|
||||
dashboardUuid := c.dashboardUuid(
|
||||
cloudProvider, serviceId, d.Id,
|
||||
)
|
||||
service.Assets.Dashboards[i].Url = fmt.Sprintf(
|
||||
"/dashboard/%s", dashboardUuid,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -456,3 +489,134 @@ func (c *Controller) UpdateServiceConfig(
|
||||
Config: *updatedConfig,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// All dashboards that are available based on cloud integrations configuration
|
||||
// across all cloud providers
|
||||
func (c *Controller) AvailableDashboards(ctx context.Context) (
|
||||
[]dashboards.Dashboard, *model.ApiError,
|
||||
) {
|
||||
allDashboards := []dashboards.Dashboard{}
|
||||
|
||||
for _, provider := range []string{"aws"} {
|
||||
providerDashboards, apiErr := c.AvailableDashboardsForCloudProvider(ctx, provider)
|
||||
if apiErr != nil {
|
||||
return nil, model.WrapApiError(
|
||||
apiErr, fmt.Sprintf("couldn't get available dashboards for %s", provider),
|
||||
)
|
||||
}
|
||||
|
||||
allDashboards = append(allDashboards, providerDashboards...)
|
||||
}
|
||||
|
||||
return allDashboards, nil
|
||||
}
|
||||
|
||||
func (c *Controller) AvailableDashboardsForCloudProvider(
|
||||
ctx context.Context, cloudProvider string,
|
||||
) ([]dashboards.Dashboard, *model.ApiError) {
|
||||
|
||||
accountRecords, apiErr := c.accountsRepo.listConnected(ctx, cloudProvider)
|
||||
if apiErr != nil {
|
||||
return nil, model.WrapApiError(apiErr, "couldn't list connected cloud accounts")
|
||||
}
|
||||
|
||||
// for v0, service dashboards are only available when metrics are enabled.
|
||||
servicesWithAvailableMetrics := map[string]*time.Time{}
|
||||
|
||||
for _, ar := range accountRecords {
|
||||
if ar.CloudAccountId != nil {
|
||||
configsBySvcId, apiErr := c.serviceConfigRepo.getAllForAccount(
|
||||
ctx, cloudProvider, *ar.CloudAccountId,
|
||||
)
|
||||
if apiErr != nil {
|
||||
return nil, apiErr
|
||||
}
|
||||
|
||||
for svcId, config := range configsBySvcId {
|
||||
if config.Metrics != nil && config.Metrics.Enabled {
|
||||
servicesWithAvailableMetrics[svcId] = &ar.CreatedAt
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
allServices, apiErr := listCloudProviderServices(cloudProvider)
|
||||
if apiErr != nil {
|
||||
return nil, apiErr
|
||||
}
|
||||
|
||||
svcDashboards := []dashboards.Dashboard{}
|
||||
for _, svc := range allServices {
|
||||
serviceDashboardsCreatedAt := servicesWithAvailableMetrics[svc.Id]
|
||||
if serviceDashboardsCreatedAt != nil {
|
||||
for _, d := range svc.Assets.Dashboards {
|
||||
isLocked := 1
|
||||
author := fmt.Sprintf("%s-integration", cloudProvider)
|
||||
svcDashboards = append(svcDashboards, dashboards.Dashboard{
|
||||
Uuid: c.dashboardUuid(cloudProvider, svc.Id, d.Id),
|
||||
Locked: &isLocked,
|
||||
Data: *d.Definition,
|
||||
CreatedAt: *serviceDashboardsCreatedAt,
|
||||
CreateBy: &author,
|
||||
UpdatedAt: *serviceDashboardsCreatedAt,
|
||||
UpdateBy: &author,
|
||||
})
|
||||
}
|
||||
servicesWithAvailableMetrics[svc.Id] = nil
|
||||
}
|
||||
}
|
||||
|
||||
return svcDashboards, nil
|
||||
}
|
||||
func (c *Controller) GetDashboardById(
|
||||
ctx context.Context,
|
||||
dashboardUuid string,
|
||||
) (*dashboards.Dashboard, *model.ApiError) {
|
||||
cloudProvider, _, _, apiErr := c.parseDashboardUuid(dashboardUuid)
|
||||
if apiErr != nil {
|
||||
return nil, apiErr
|
||||
}
|
||||
|
||||
allDashboards, apiErr := c.AvailableDashboardsForCloudProvider(ctx, cloudProvider)
|
||||
if apiErr != nil {
|
||||
return nil, model.WrapApiError(
|
||||
apiErr, fmt.Sprintf("couldn't list available dashboards"),
|
||||
)
|
||||
}
|
||||
|
||||
for _, d := range allDashboards {
|
||||
if d.Uuid == dashboardUuid {
|
||||
return &d, nil
|
||||
}
|
||||
}
|
||||
|
||||
return nil, model.NotFoundError(fmt.Errorf(
|
||||
"couldn't find dashboard with uuid: %s", dashboardUuid,
|
||||
))
|
||||
}
|
||||
|
||||
func (c *Controller) dashboardUuid(
|
||||
cloudProvider string, svcId string, dashboardId string,
|
||||
) string {
|
||||
return fmt.Sprintf(
|
||||
"cloud-integration--%s--%s--%s", cloudProvider, svcId, dashboardId,
|
||||
)
|
||||
}
|
||||
|
||||
func (c *Controller) parseDashboardUuid(dashboardUuid string) (
|
||||
cloudProvider string, svcId string, dashboardId string, apiErr *model.ApiError,
|
||||
) {
|
||||
parts := strings.SplitN(dashboardUuid, "--", 4)
|
||||
if len(parts) != 4 || parts[0] != "cloud-integration" {
|
||||
return "", "", "", model.BadRequest(fmt.Errorf(
|
||||
"invalid cloud integration dashboard id",
|
||||
))
|
||||
}
|
||||
|
||||
return parts[1], parts[2], parts[3], nil
|
||||
}
|
||||
|
||||
func (c *Controller) IsCloudIntegrationDashboardUuid(dashboardUuid string) bool {
|
||||
_, _, _, apiErr := c.parseDashboardUuid(dashboardUuid)
|
||||
return apiErr == nil
|
||||
}
|
||||
|
@ -183,7 +183,16 @@ type CloudServiceMetricsConfig struct {
|
||||
}
|
||||
|
||||
type CloudServiceAssets struct {
|
||||
Dashboards []dashboards.Data `json:"dashboards"`
|
||||
Dashboards []CloudServiceDashboard `json:"dashboards"`
|
||||
}
|
||||
|
||||
type CloudServiceDashboard struct {
|
||||
Id string `json:"id"`
|
||||
Url string `json:"url"`
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
Image string `json:"image"`
|
||||
Definition *dashboards.Data `json:"definition,omitempty"`
|
||||
}
|
||||
|
||||
type SupportedSignals struct {
|
||||
|
@ -0,0 +1,884 @@
|
||||
{
|
||||
"description": "Overview of EC2 instances",
|
||||
"image": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIj4KICA8cGF0aCBmaWxsPSIjOUQ1MDI1IiBkPSJNMS43MDIgMi45OEwxIDMuMzEydjkuMzc2bC43MDIuMzMyIDIuODQyLTQuNzc3TDEuNzAyIDIuOTh6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik0zLjMzOSAxMi42NTdsLTEuNjM3LjM2M1YyLjk4bDEuNjM3LjM1M3Y5LjMyNHoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTIuNDc2IDIuNjEybC44NjMtLjQwNiA0LjA5NiA2LjIxNi00LjA5NiA1LjM3Mi0uODYzLS40MDZWMi42MTJ6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik01LjM4IDEzLjI0OGwtMi4wNDEuNTQ2VjIuMjA2bDIuMDQuNTQ4djEwLjQ5NHoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTQuMyAxLjc1bDEuMDgtLjUxMiA2LjA0MyA3Ljg2NC02LjA0MyA1LjY2LTEuMDgtLjUxMVYxLjc0OXoiIC8+CiAgPHBhdGggZmlsbD0iI0Y1ODUzNiIgZD0iTTcuOTk4IDEzLjg1NmwtMi42MTguOTA2VjEuMjM4bDIuNjE4LjkwOHYxMS43MXoiIC8+CiAgPHBhdGggZmlsbD0iIzlENTAyNSIgZD0iTTYuNjAyLjY2TDcuOTk4IDBsNi41MzggOC40NTNMNy45OTggMTZsLTEuMzk2LS42NlYuNjZ6IiAvPgogIDxwYXRoIGZpbGw9IiNGNTg1MzYiIGQ9Ik0xNSAxMi42ODZMNy45OTggMTZWMEwxNSAzLjMxNHY5LjM3MnoiIC8+Cjwvc3ZnPg==",
|
||||
"layout": [
|
||||
{
|
||||
"h": 6,
|
||||
"i": "b7a8d21e-d0e9-42de-a83f-5399f37db96c",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"h": 6,
|
||||
"i": "24b502cc-8f30-4a72-9dce-b6ee4555643a",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"h": 6,
|
||||
"i": "87422d3b-4128-4450-a0fe-317dbdcb9f83",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 6
|
||||
},
|
||||
{
|
||||
"h": 6,
|
||||
"i": "676c985b-de96-490f-ae1c-b2843deba7f8",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 6
|
||||
},
|
||||
{
|
||||
"h": 6,
|
||||
"i": "1f0c2eea-3f63-4c38-93e1-eff6d3981dfd",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 12
|
||||
},
|
||||
{
|
||||
"h": 6,
|
||||
"i": "0548fe05-e13d-4110-b012-013b675f690f",
|
||||
"moved": false,
|
||||
"static": false,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 12
|
||||
}
|
||||
],
|
||||
"panelMap": {},
|
||||
"tags": [],
|
||||
"title": "EC2 Overview",
|
||||
"uploadedGrafana": false,
|
||||
"variables": {
|
||||
"1de21552-5c52-4484-ad9f-065ec51fd8e9": {
|
||||
"allSelected": false,
|
||||
"customValue": "",
|
||||
"description": "AWS Account",
|
||||
"id": "1de21552-5c52-4484-ad9f-065ec51fd8e9",
|
||||
"key": "1de21552-5c52-4484-ad9f-065ec51fd8e9",
|
||||
"modificationUUID": "a48382b3-010e-45e1-8e77-a6a3f5e8d138",
|
||||
"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 'CPUUtilization'\n and JSONExtractString(labels, 'cloud_provider') like 'aws'\n and JSONExtractString(labels, 'service_name') like 'EC2'\nGROUP BY cloud_account_id",
|
||||
"showALLOption": false,
|
||||
"sort": "DISABLED",
|
||||
"textboxValue": "",
|
||||
"type": "QUERY"
|
||||
},
|
||||
"d4088f55-111c-479c-84bd-445dce8ba210": {
|
||||
"allSelected": false,
|
||||
"customValue": "",
|
||||
"description": "AWS Region",
|
||||
"id": "d4088f55-111c-479c-84bd-445dce8ba210",
|
||||
"modificationUUID": "fc1b8b85-dfa9-4250-a04a-ff77bca0398c",
|
||||
"multiSelect": false,
|
||||
"name": "Region",
|
||||
"order": 0,
|
||||
"queryValue": "SELECT JSONExtractString(labels, 'cloud_region') as cloud_region\nFROM signoz_metrics.distributed_time_series_v4_1day\nWHERE \n metric_name like 'CPUUtilization'\n and JSONExtractString(labels, 'cloud_account_id') IN {{.Account}}\n and JSONExtractString(labels, 'cloud_provider') like 'aws'\n and JSONExtractString(labels, 'service_name') like 'EC2'\nGROUP BY cloud_region",
|
||||
"showALLOption": false,
|
||||
"sort": "DISABLED",
|
||||
"textboxValue": "",
|
||||
"type": "QUERY"
|
||||
}
|
||||
},
|
||||
"version": "v4",
|
||||
"widgets": [
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "",
|
||||
"fillSpans": false,
|
||||
"id": "b7a8d21e-d0e9-42de-a83f-5399f37db96c",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "float64",
|
||||
"id": "CPUUtilization_count--float64--Sum--true",
|
||||
"isColumn": true,
|
||||
"isJSON": false,
|
||||
"key": "CPUUtilization_count",
|
||||
"type": "Sum"
|
||||
},
|
||||
"aggregateOperator": "increase",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "B",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [
|
||||
{
|
||||
"dataType": "string",
|
||||
"id": "service_instance_id--string--tag--false",
|
||||
"isColumn": false,
|
||||
"isJSON": false,
|
||||
"key": "service_instance_id",
|
||||
"type": "tag"
|
||||
}
|
||||
],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "B",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "max",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": "increase"
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "c933d8b2-036b-4a64-8935-6c253c1da6a3",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}} ",
|
||||
"name": "A",
|
||||
"query": "CPUUtilization{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "CPU Utilization",
|
||||
"yAxisUnit": "percent"
|
||||
},
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "Percentage of available CPU credits that were utilizaed",
|
||||
"fillSpans": false,
|
||||
"id": "24b502cc-8f30-4a72-9dce-b6ee4555643a",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "",
|
||||
"id": "CPUCredit------false",
|
||||
"isColumn": false,
|
||||
"key": "CPUCredit",
|
||||
"type": ""
|
||||
},
|
||||
"aggregateOperator": "count",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "A",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "A",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": ""
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "d97f6a4d-f66e-4688-9daf-172f24c87984",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}}",
|
||||
"name": "A",
|
||||
"query": "CPUCreditUsage{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "CPU Credits Utilization",
|
||||
"yAxisUnit": "percentunit"
|
||||
},
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "",
|
||||
"fillSpans": false,
|
||||
"id": "676c985b-de96-490f-ae1c-b2843deba7f8",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "",
|
||||
"id": "EBSRea------false",
|
||||
"isColumn": false,
|
||||
"key": "EBSRea",
|
||||
"type": ""
|
||||
},
|
||||
"aggregateOperator": "count",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "A",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "A",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": ""
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "8267701a-10e4-4405-bb1c-53f0dba4b711",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}} - Reads",
|
||||
"name": "A",
|
||||
"query": "EBSReadOps{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
},
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}} - Writes",
|
||||
"name": "B",
|
||||
"query": "EBSWriteOps{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "EBS Ops",
|
||||
"yAxisUnit": "none"
|
||||
},
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "",
|
||||
"fillSpans": false,
|
||||
"id": "87422d3b-4128-4450-a0fe-317dbdcb9f83",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "",
|
||||
"id": "EBS------false",
|
||||
"isColumn": false,
|
||||
"key": "EBS",
|
||||
"type": ""
|
||||
},
|
||||
"aggregateOperator": "count",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "A",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "A",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": ""
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "0cf58200-a2bc-4a08-ab41-7b2a7d2ec92e",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}} - Reads",
|
||||
"name": "A",
|
||||
"query": "EBSReadBytes{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
},
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}} - Writes",
|
||||
"name": "B",
|
||||
"query": "EBSWriteBytes{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "EBS Read/Write Bytes",
|
||||
"yAxisUnit": "binBps"
|
||||
},
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "",
|
||||
"fillSpans": false,
|
||||
"id": "1f0c2eea-3f63-4c38-93e1-eff6d3981dfd",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "",
|
||||
"id": "------false",
|
||||
"isColumn": false,
|
||||
"key": "",
|
||||
"type": ""
|
||||
},
|
||||
"aggregateOperator": "count",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "A",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "A",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": ""
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "6378c4a2-d0fd-485f-a768-89910ff2d934",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}}",
|
||||
"name": "A",
|
||||
"query": "NetworkIn{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "Network Incoming",
|
||||
"yAxisUnit": "binBps"
|
||||
},
|
||||
{
|
||||
"bucketCount": 30,
|
||||
"bucketWidth": 0,
|
||||
"columnUnits": {},
|
||||
"description": "",
|
||||
"fillSpans": false,
|
||||
"id": "0548fe05-e13d-4110-b012-013b675f690f",
|
||||
"isStacked": false,
|
||||
"mergeAllActiveQueries": false,
|
||||
"nullZeroValues": "zero",
|
||||
"opacity": "1",
|
||||
"panelTypes": "graph",
|
||||
"query": {
|
||||
"builder": {
|
||||
"queryData": [
|
||||
{
|
||||
"aggregateAttribute": {
|
||||
"dataType": "",
|
||||
"id": "------false",
|
||||
"isColumn": false,
|
||||
"key": "",
|
||||
"type": ""
|
||||
},
|
||||
"aggregateOperator": "count",
|
||||
"dataSource": "metrics",
|
||||
"disabled": false,
|
||||
"expression": "A",
|
||||
"filters": {
|
||||
"items": [],
|
||||
"op": "AND"
|
||||
},
|
||||
"functions": [],
|
||||
"groupBy": [],
|
||||
"having": [],
|
||||
"legend": "",
|
||||
"limit": null,
|
||||
"orderBy": [],
|
||||
"queryName": "A",
|
||||
"reduceTo": "avg",
|
||||
"spaceAggregation": "",
|
||||
"stepInterval": 60,
|
||||
"timeAggregation": ""
|
||||
}
|
||||
],
|
||||
"queryFormulas": []
|
||||
},
|
||||
"clickhouse_sql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "",
|
||||
"name": "A",
|
||||
"query": ""
|
||||
}
|
||||
],
|
||||
"id": "5c1479bc-1e10-4643-b797-006e97f42b6d",
|
||||
"promql": [
|
||||
{
|
||||
"disabled": false,
|
||||
"legend": "{{service_instance_id}}",
|
||||
"name": "A",
|
||||
"query": "NetworkOut{cloud_provider=\"aws\",cloud_account_id=\"$Account\",cloud_region=\"$Region\",service_name=\"EC2\", service_instance_id!=\"\",quantile=\"1\"}"
|
||||
}
|
||||
],
|
||||
"queryType": "promql"
|
||||
},
|
||||
"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": "Network Outgoing",
|
||||
"yAxisUnit": "binBps"
|
||||
}
|
||||
]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
@ -3,9 +3,6 @@
|
||||
"title": "EC2",
|
||||
"icon": "file://icon.svg",
|
||||
"overview": "file://overview.md",
|
||||
"assets": {
|
||||
"dashboards": []
|
||||
},
|
||||
"supported_signals": {
|
||||
"metrics": true,
|
||||
"logs": false
|
||||
@ -13,16 +10,346 @@
|
||||
"data_collected": {
|
||||
"metrics": [
|
||||
{
|
||||
"name": "ec2_cpuutilization_average",
|
||||
"type": "Gauge",
|
||||
"unit": "number",
|
||||
"description": "CloudWatch metric CPUUtilization"
|
||||
"name": "CPUCreditBalance",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ec2_cpuutilization_maximum",
|
||||
"type": "Gauge",
|
||||
"unit": "number",
|
||||
"description": "CloudWatch metric CPUUtilization"
|
||||
"name": "CPUCreditBalance_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditBalance_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization_count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization_sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance_",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance__count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance__sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance_",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance__count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance__sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadBytes",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadBytes_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadBytes_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadOps",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadOps_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSReadOps_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteBytes",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteBytes_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteBytes_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteOps",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteOps_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSWriteOps_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MetadataNoToken",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MetadataNoToken_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MetadataNoToken_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkIn",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkIn_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkIn_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkOut",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkOut_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkOut_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsIn",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsIn_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsIn_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsOut",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsOut_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkPacketsOut_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_Instance",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_Instance_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_Instance_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_System",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_System_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_System_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StatusCheckFailed_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
}
|
||||
],
|
||||
"logs": []
|
||||
@ -35,5 +362,16 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"assets": {
|
||||
"dashboards": [
|
||||
{
|
||||
"id": "overview",
|
||||
"title": "EC2 Overview",
|
||||
"description": "Overview of EC2",
|
||||
"image": "file://assets/dashboards/overview.png",
|
||||
"definition": "file://assets/dashboards/overview.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
@ -3,9 +3,6 @@
|
||||
"title": "Amazon RDS",
|
||||
"icon": "file://icon.svg",
|
||||
"overview": "file://overview.md",
|
||||
"assets": {
|
||||
"dashboards": []
|
||||
},
|
||||
"supported_signals": {
|
||||
"metrics": true,
|
||||
"logs": true
|
||||
@ -13,19 +10,923 @@
|
||||
"data_collected": {
|
||||
"metrics": [
|
||||
{
|
||||
"name": "rds_postgres_cpuutilization_average",
|
||||
"type": "Gauge",
|
||||
"unit": "number",
|
||||
"description": "CloudWatch metric CPUUtilization"
|
||||
"name": "BurstBalance",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "rds_postgres_cpuutilization_maximum",
|
||||
"type": "Gauge",
|
||||
"unit": "number",
|
||||
"description": "CloudWatch metric CPUUtilization"
|
||||
"name": "BurstBalance_count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BurstBalance_sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditBalance",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditBalance_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditBalance_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUCreditUsage_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditBalance_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUSurplusCreditsCharged_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization_count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CPUUtilization_sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CheckpointLag",
|
||||
"unit": "Seconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CheckpointLag_count",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CheckpointLag_sum",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoad",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadCPU",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadCPU_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadCPU_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadNonCPU",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadNonCPU_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadNonCPU_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadRelativeToNumVCPUs",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadRelativeToNumVCPUs_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoadRelativeToNumVCPUs_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoad_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DBLoad_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DatabaseConnections",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DatabaseConnections_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DatabaseConnections_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DiskQueueDepth",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DiskQueueDepth_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "DiskQueueDepth_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance_",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance__count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSByteBalance__sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance_",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance__count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EBSIOBalance__sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeStorageSpace",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeStorageSpace_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeStorageSpace_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeableMemory",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeableMemory_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "FreeableMemory_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MaximumUsedTransactionIDs",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MaximumUsedTransactionIDs_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "MaximumUsedTransactionIDs_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkReceiveThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkReceiveThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkReceiveThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkTransmitThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkTransmitThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkTransmitThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "OldestReplicationSlotLag",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "OldestReplicationSlotLag_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "OldestReplicationSlotLag_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadIOPS",
|
||||
"unit": "Count/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadIOPS_count",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadIOPS_sum",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadLatency",
|
||||
"unit": "Seconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadLatency_count",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadLatency_sum",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReadThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReplicationSlotDiskUsage",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReplicationSlotDiskUsage_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ReplicationSlotDiskUsage_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "SwapUsage",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "SwapUsage_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "SwapUsage_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsDiskUsage",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsDiskUsage_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsDiskUsage_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsGeneration",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsGeneration_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TransactionLogsGeneration_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteIOPS",
|
||||
"unit": "Count/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteIOPS_count",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteIOPS_sum",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteLatency",
|
||||
"unit": "Seconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteLatency_count",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteLatency_sum",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "WriteThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ACUUtilization",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ACUUtilization_count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ACUUtilization_sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BackupRetentionPeriodStorageUsed",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BackupRetentionPeriodStorageUsed_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BackupRetentionPeriodStorageUsed_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BufferCacheHitRatio",
|
||||
"unit": "Percent",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BufferCacheHitRatio_count",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "BufferCacheHitRatio_sum",
|
||||
"unit": "Percent",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitLatency",
|
||||
"unit": "Milliseconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitLatency_count",
|
||||
"unit": "Milliseconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitLatency_sum",
|
||||
"unit": "Milliseconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitThroughput",
|
||||
"unit": "Count/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitThroughput_count",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "CommitThroughput_sum",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "Deadlocks",
|
||||
"unit": "Count/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "Deadlocks_count",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "Deadlocks_sum",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EngineUptime",
|
||||
"unit": "Seconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EngineUptime_count",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "EngineUptime_sum",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "NetworkThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "RDSToAuroraPostgreSQLReplicaLag",
|
||||
"unit": "Seconds",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "RDSToAuroraPostgreSQLReplicaLag_count",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "RDSToAuroraPostgreSQLReplicaLag_sum",
|
||||
"unit": "Seconds",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ServerlessDatabaseCapacity",
|
||||
"unit": "None",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ServerlessDatabaseCapacity_count",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "ServerlessDatabaseCapacity_sum",
|
||||
"unit": "None",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkReceiveThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkReceiveThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkReceiveThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkTransmitThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkTransmitThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "StorageNetworkTransmitThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageIOPS",
|
||||
"unit": "Count/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageIOPS_count",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageIOPS_sum",
|
||||
"unit": "Count/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageThroughput",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageThroughput_count",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TempStorageThroughput_sum",
|
||||
"unit": "Bytes/Second",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TotalBackupStorageBilled",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TotalBackupStorageBilled_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "TotalBackupStorageBilled_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeBytesUsed",
|
||||
"unit": "Bytes",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeBytesUsed_count",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeBytesUsed_sum",
|
||||
"unit": "Bytes",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeReadIOPs",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeReadIOPs_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeReadIOPs_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeWriteIOPs",
|
||||
"unit": "Count",
|
||||
"type": "Summary",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeWriteIOPs_count",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
},
|
||||
{
|
||||
"name": "VolumeWriteIOPs_sum",
|
||||
"unit": "Count",
|
||||
"type": "Sum",
|
||||
"description": ""
|
||||
}
|
||||
],
|
||||
"logs": []
|
||||
"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": {
|
||||
@ -43,5 +944,16 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"assets": {
|
||||
"dashboards": [
|
||||
{
|
||||
"id": "overview",
|
||||
"title": "RDS Overview",
|
||||
"description": "Overview of RDS",
|
||||
"image": "file://assets/dashboards/overview.png",
|
||||
"definition": "file://assets/dashboards/overview.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@ -1026,8 +1026,16 @@ func (aH *APIHandler) getDashboards(w http.ResponseWriter, r *http.Request) {
|
||||
installedIntegrationDashboards, err := ic.GetDashboardsForInstalledIntegrations(r.Context())
|
||||
if err != nil {
|
||||
zap.L().Error("failed to get dashboards for installed integrations", zap.Error(err))
|
||||
} else {
|
||||
allDashboards = append(allDashboards, installedIntegrationDashboards...)
|
||||
}
|
||||
|
||||
cloudIntegrationDashboards, err := aH.CloudIntegrationsController.AvailableDashboards(r.Context())
|
||||
if err != nil {
|
||||
zap.L().Error("failed to get cloud dashboards", zap.Error(err))
|
||||
} else {
|
||||
allDashboards = append(allDashboards, cloudIntegrationDashboards...)
|
||||
}
|
||||
allDashboards = append(allDashboards, installedIntegrationDashboards...)
|
||||
|
||||
tagsFromReq, ok := r.URL.Query()["tags"]
|
||||
if !ok || len(tagsFromReq) == 0 || tagsFromReq[0] == "" {
|
||||
@ -1183,12 +1191,24 @@ func (aH *APIHandler) getDashboard(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
dashboard, apiError = aH.IntegrationsController.GetInstalledIntegrationDashboardById(
|
||||
r.Context(), uuid,
|
||||
)
|
||||
if apiError != nil {
|
||||
RespondError(w, apiError, nil)
|
||||
return
|
||||
if aH.CloudIntegrationsController.IsCloudIntegrationDashboardUuid(uuid) {
|
||||
dashboard, apiError = aH.CloudIntegrationsController.GetDashboardById(
|
||||
r.Context(), uuid,
|
||||
)
|
||||
if apiError != nil {
|
||||
RespondError(w, apiError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
} else {
|
||||
dashboard, apiError = aH.IntegrationsController.GetInstalledIntegrationDashboardById(
|
||||
r.Context(), uuid,
|
||||
)
|
||||
if apiError != nil {
|
||||
RespondError(w, apiError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -231,6 +231,16 @@ func readFileIfUri(fs embed.FS, maybeFileUri string, basedir string) (interface{
|
||||
dataUri := fmt.Sprintf("data:image/svg+xml;base64,%s", base64Svg)
|
||||
return dataUri, nil
|
||||
|
||||
} else if strings.HasSuffix(maybeFileUri, ".jpeg") || strings.HasSuffix(maybeFileUri, ".jpg") {
|
||||
base64Contents := base64.StdEncoding.EncodeToString(fileContents)
|
||||
dataUri := fmt.Sprintf("data:image/jpeg;base64,%s", base64Contents)
|
||||
return dataUri, nil
|
||||
|
||||
} else if strings.HasSuffix(maybeFileUri, ".png") {
|
||||
base64Contents := base64.StdEncoding.EncodeToString(fileContents)
|
||||
dataUri := fmt.Sprintf("data:image/png;base64,%s", base64Contents)
|
||||
return dataUri, nil
|
||||
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("unsupported file type %s", maybeFileUri)
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
mockhouse "github.com/srikanthccv/ClickHouse-go-mock"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.signoz.io/signoz/pkg/query-service/app"
|
||||
"go.signoz.io/signoz/pkg/query-service/app/cloudintegrations"
|
||||
"go.signoz.io/signoz/pkg/query-service/app/dashboards"
|
||||
"go.signoz.io/signoz/pkg/query-service/app/integrations"
|
||||
"go.signoz.io/signoz/pkg/query-service/app/logparsingpipeline"
|
||||
@ -557,11 +558,17 @@ func NewIntegrationsTestBed(t *testing.T, testDB *sqlx.DB) *IntegrationsTestBed
|
||||
reader, mockClickhouse := NewMockClickhouseReader(t, testDB, fm)
|
||||
mockClickhouse.MatchExpectationsInOrder(false)
|
||||
|
||||
cloudIntegrationsController, err := cloudintegrations.NewController(testDB)
|
||||
if err != nil {
|
||||
t.Fatalf("could not create cloud integrations controller: %v", err)
|
||||
}
|
||||
|
||||
apiHandler, err := app.NewAPIHandler(app.APIHandlerOpts{
|
||||
Reader: reader,
|
||||
AppDao: dao.DB(),
|
||||
IntegrationsController: controller,
|
||||
FeatureFlags: fm,
|
||||
Reader: reader,
|
||||
AppDao: dao.DB(),
|
||||
IntegrationsController: controller,
|
||||
FeatureFlags: fm,
|
||||
CloudIntegrationsController: cloudIntegrationsController,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("could not create a new ApiHandler: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user