Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var SupportedServices = serviceConfigs{ { Namespace: "AWS/CertificateManager", Alias: "acm", ResourceFilters: []*string{ aws.String("acm:certificate"), }, }, { Namespace: "AmazonMWAA", Alias: "airflow", ResourceFilters: []*string{ aws.String("airflow"), }, }, { Namespace: "AWS/ApplicationELB", Alias: "alb", ResourceFilters: []*string{ aws.String("elasticloadbalancing:loadbalancer/app"), aws.String("elasticloadbalancing:targetgroup"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":(?P<TargetGroup>targetgroup/.+)"), regexp.MustCompile(":loadbalancer/(?P<LoadBalancer>.+)$"), }, }, { Namespace: "AWS/AppStream", Alias: "appstream", ResourceFilters: []*string{ aws.String("appstream"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":fleet/(?P<FleetName>[^/]+)"), }, }, { Namespace: "AWS/Backup", Alias: "backup", ResourceFilters: []*string{ aws.String("backup"), }, }, { Namespace: "AWS/ApiGateway", Alias: "apigateway", ResourceFilters: []*string{ aws.String("apigateway"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("apis/(?P<ApiName>[^/]+)$"), regexp.MustCompile("apis/(?P<ApiName>[^/]+)/stages/(?P<Stage>[^/]+)$"), }, }, { Namespace: "AWS/AmazonMQ", Alias: "mq", ResourceFilters: []*string{ aws.String("mq"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("broker:(?P<Broker>[^:]+)"), }, }, { Namespace: "AWS/AppSync", Alias: "appsync", ResourceFilters: []*string{ aws.String("appsync"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("apis/(?P<GraphQLAPIId>[^/]+)"), }, }, { Namespace: "AWS/Athena", Alias: "athena", ResourceFilters: []*string{ aws.String("athena"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("workgroup/(?P<WorkGroup>[^/]+)"), }, }, { Namespace: "AWS/AutoScaling", Alias: "asg", DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("autoScalingGroupName/(?P<AutoScalingGroupName>[^/]+)"), }, }, { Namespace: "AWS/ElasticBeanstalk", Alias: "beanstalk", }, { Namespace: "AWS/Billing", Alias: "billing", }, { Namespace: "AWS/Cassandra", Alias: "cassandra", ResourceFilters: []*string{ aws.String("cassandra"), }, }, { Namespace: "AWS/CloudFront", Alias: "cloudfront", ResourceFilters: []*string{ aws.String("cloudfront:distribution"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("distribution/(?P<DistributionId>[^/]+)"), }, }, { Namespace: "AWS/Cognito", Alias: "cognito-idp", ResourceFilters: []*string{ aws.String("cognito-idp:userpool"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("userpool/(?P<UserPool>[^/]+)"), }, }, { Namespace: "AWS/DMS", Alias: "dms", ResourceFilters: []*string{ aws.String("dms"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("rep:[^/]+/(?P<ReplicationInstanceIdentifier>[^/]+)"), regexp.MustCompile("task:(?P<ReplicationTaskIdentifier>[^/]+)/(?P<ReplicationInstanceIdentifier>[^/]+)"), }, }, { Namespace: "AWS/DDoSProtection", Alias: "shield", ResourceFilters: []*string{ aws.String("shield:protection"), }, }, { Namespace: "AWS/DocDB", Alias: "docdb", ResourceFilters: []*string{ aws.String("rds:db"), aws.String("rds:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("cluster:(?P<DBClusterIdentifier>[^/]+)"), regexp.MustCompile("db:(?P<DBInstanceIdentifier>[^/]+)"), }, }, { Namespace: "AWS/DX", Alias: "dx", ResourceFilters: []*string{ aws.String("directconnect"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":dxcon/(?P<ConnectionId>[^/]+)"), regexp.MustCompile(":dxlag/(?P<LagId>[^/]+)"), regexp.MustCompile(":dxvif/(?P<VirtualInterfaceId>[^/]+)"), }, }, { Namespace: "AWS/DynamoDB", Alias: "dynamodb", ResourceFilters: []*string{ aws.String("dynamodb:table"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":table/(?P<TableName>[^/]+)"), }, }, { Namespace: "AWS/EBS", Alias: "ebs", ResourceFilters: []*string{ aws.String("ec2:volume"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("volume/(?P<VolumeId>[^/]+)"), }, }, { Namespace: "AWS/ElastiCache", Alias: "ec", ResourceFilters: []*string{ aws.String("elasticache:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("cluster:(?P<CacheClusterId>[^/]+)"), }, }, { Namespace: "AWS/EC2", Alias: "ec2", ResourceFilters: []*string{ aws.String("ec2:instance"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("instance/(?P<InstanceId>[^/]+)"), }, }, { Namespace: "AWS/EC2Spot", Alias: "ec2Spot", DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("(?P<FleetRequestId>.*)"), }, }, { Namespace: "AWS/ECS", Alias: "ecs-svc", ResourceFilters: []*string{ aws.String("ecs:cluster"), aws.String("ecs:service"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("cluster/(?P<ClusterName>[^/]+)"), regexp.MustCompile("service/(?P<ClusterName>[^/]+)/([^/]+)"), }, }, { Namespace: "ECS/ContainerInsights", Alias: "ecs-containerinsights", ResourceFilters: []*string{ aws.String("ecs:cluster"), aws.String("ecs:service"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("cluster/(?P<ClusterName>[^/]+)"), regexp.MustCompile("service/(?P<ClusterName>[^/]+)/([^/]+)"), }, }, { Namespace: "AWS/EFS", Alias: "efs", ResourceFilters: []*string{ aws.String("elasticfilesystem:file-system"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("file-system/(?P<FileSystemId>[^/]+)"), }, }, { Namespace: "AWS/ELB", Alias: "elb", ResourceFilters: []*string{ aws.String("elasticloadbalancing:loadbalancer"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":loadbalancer/(?P<LoadBalancerName>.+)$"), }, }, { Namespace: "AWS/ElasticMapReduce", Alias: "emr", ResourceFilters: []*string{ aws.String("elasticmapreduce:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("cluster/(?P<JobFlowId>[^/]+)"), }, }, { Namespace: "AWS/EMRServerless", Alias: "emr-serverless", ResourceFilters: []*string{ aws.String("emr-serverless:applications"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("applications/(?P<ApplicationId>[^/]+)"), }, }, { Namespace: "AWS/ES", Alias: "es", ResourceFilters: []*string{ aws.String("es:domain"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":domain/(?P<DomainName>[^/]+)"), }, }, { Namespace: "AWS/Firehose", Alias: "firehose", ResourceFilters: []*string{ aws.String("firehose"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":deliverystream/(?P<DeliveryStreamName>[^/]+)"), }, }, { Namespace: "AWS/FSx", Alias: "fsx", ResourceFilters: []*string{ aws.String("fsx:file-system"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("file-system/(?P<FileSystemId>[^/]+)"), }, }, { Namespace: "AWS/GameLift", Alias: "gamelift", ResourceFilters: []*string{ aws.String("gamelift"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":fleet/(?P<FleetId>[^/]+)"), }, }, { Namespace: "AWS/GlobalAccelerator", Alias: "ga", ResourceFilters: []*string{ aws.String("globalaccelerator"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("destinationEdge/(?P<DestinationEdge>[^/]+)"), regexp.MustCompile("accelerator/(?P<Accelerator>[^/]+)"), regexp.MustCompile("endpointGroup/(?P<EndpointGroup>[^/]+)"), regexp.MustCompile("listener/(?P<Listener>[^/]+)"), regexp.MustCompile("transportProtocol/(?P<TransportProtocol>[^/]+)"), }, }, { Namespace: "Glue", Alias: "glue", ResourceFilters: []*string{ aws.String("glue:job"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":job/(?P<JobName>[^/]+)"), }, }, { Namespace: "AWS/IoT", Alias: "iot", ResourceFilters: []*string{ aws.String("iot:rule"), aws.String("iot:provisioningtemplate"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":rule/(?P<RuleName>[^/]+)"), regexp.MustCompile(":provisioningtemplate/(?P<TemplateName>[^/]+)"), }, }, { Namespace: "AWS/Kafka", Alias: "kafka", ResourceFilters: []*string{ aws.String("kafka:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":cluster/(?P<Cluster_Name>[^/]+)"), }, }, { Namespace: "AWS/KafkaConnect", Alias: "kafkaconnect", ResourceFilters: []*string{ aws.String("kafkaconnect"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":connector/(?P<Connector_Name>[^/]+)"), }, }, { Namespace: "AWS/Kinesis", Alias: "kinesis", ResourceFilters: []*string{ aws.String("kinesis:stream"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":stream/(?P<StreamName>[^/]+)"), }, }, { Namespace: "AWS/KinesisAnalytics", Alias: "kinesis-analytics", }, { Namespace: "AWS/Lambda", Alias: "lambda", ResourceFilters: []*string{ aws.String("lambda:function"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":function:(?P<FunctionName>[^/]+)"), }, }, { Namespace: "AWS/MediaConnect", Alias: "mediaconnect", ResourceFilters: []*string{ aws.String("mediaconnect:flow"), aws.String("mediaconnect:source"), aws.String("mediaconnect:output"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("^(?P<FlowARN>.*:flow:.*)$"), regexp.MustCompile("^(?P<SourceARN>.*:source:.*)$"), regexp.MustCompile("^(?P<OutputARN>.*:output:.*)$"), }, }, { Namespace: "AWS/MediaLive", Alias: "medialive", ResourceFilters: []*string{ aws.String("medialive:channel"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":channel:(?P<ChannelId>.+)$"), }, }, { Namespace: "AWS/MediaTailor", Alias: "mediatailor", ResourceFilters: []*string{ aws.String("mediatailor:playbackConfiguration"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("playbackConfiguration/(?P<ConfigurationName>[^/]+)"), }, }, { Namespace: "AWS/Neptune", Alias: "neptune", ResourceFilters: []*string{ aws.String("rds:db"), aws.String("rds:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":cluster:(?P<DBClusterIdentifier>[^/]+)"), regexp.MustCompile(":db:(?P<DBInstanceIdentifier>[^/]+)"), }, }, { Namespace: "AWS/NetworkFirewall", Alias: "nfw", ResourceFilters: []*string{ aws.String("network-firewall:firewall"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("firewall/(?P<FirewallName>[^/]+)"), }, }, { Namespace: "AWS/NATGateway", Alias: "ngw", ResourceFilters: []*string{ aws.String("ec2:natgateway"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("natgateway/(?P<NatGatewayId>[^/]+)"), }, }, { Namespace: "AWS/NetworkELB", Alias: "nlb", ResourceFilters: []*string{ aws.String("elasticloadbalancing:loadbalancer/net"), aws.String("elasticloadbalancing:targetgroup"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":(?P<TargetGroup>targetgroup/.+)"), regexp.MustCompile(":loadbalancer/(?P<LoadBalancer>.+)$"), }, }, { Namespace: "AWS/PrivateLinkEndpoints", Alias: "vpc-endpoint", ResourceFilters: []*string{ aws.String("ec2:vpc-endpoint"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":vpc-endpoint/(?P<VPC_Endpoint_Id>.+)"), }, }, { Namespace: "AWS/PrivateLinkServices", Alias: "vpc-endpoint-service", ResourceFilters: []*string{ aws.String("ec2:vpc-endpoint-service"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":vpc-endpoint-service:(?P<Service_Id>.+)"), }, }, { Namespace: "AWS/Prometheus", Alias: "amp", }, { Namespace: "AWS/RDS", Alias: "rds", ResourceFilters: []*string{ aws.String("rds:db"), aws.String("rds:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":cluster:(?P<DBClusterIdentifier>[^/]+)"), regexp.MustCompile(":db:(?P<DBInstanceIdentifier>[^/]+)"), }, }, { Namespace: "AWS/Redshift", Alias: "redshift", ResourceFilters: []*string{ aws.String("redshift:cluster"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":cluster:(?P<ClusterIdentifier>[^/]+)"), }, }, { Namespace: "AWS/Route53Resolver", Alias: "route53-resolver", ResourceFilters: []*string{ aws.String("route53resolver"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":resolver-endpoint/(?P<EndpointId>[^/]+)"), }, }, { Namespace: "AWS/Route53", Alias: "route53", ResourceFilters: []*string{ aws.String("route53"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":healthcheck/(?P<HealthCheckId>[^/]+)"), }, }, { Namespace: "AWS/S3", Alias: "s3", ResourceFilters: []*string{ aws.String("s3"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("(?P<BucketName>[^:]+)$"), }, }, { Namespace: "AWS/SES", Alias: "ses", }, { Namespace: "AWS/States", Alias: "sfn", ResourceFilters: []*string{ aws.String("states"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("(?P<StateMachineArn>.*)"), }, }, { Namespace: "AWS/SNS", Alias: "sns", ResourceFilters: []*string{ aws.String("sns"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("(?P<TopicName>[^:]+)$"), }, }, { Namespace: "AWS/SQS", Alias: "sqs", ResourceFilters: []*string{ aws.String("sqs"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("(?P<QueueName>[^:]+)$"), }, }, { Namespace: "AWS/StorageGateway", Alias: "storagegateway", ResourceFilters: []*string{ aws.String("storagegateway"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":gateway/(?P<GatewayId>[^:]+)$"), regexp.MustCompile(":share/(?P<ShareId>[^:]+)$"), regexp.MustCompile("^(?P<GatewayId>[^:/]+)/(?P<GatewayName>[^:]+)$"), }, }, { Namespace: "AWS/TransitGateway", Alias: "tgw", ResourceFilters: []*string{ aws.String("ec2:transit-gateway"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":transit-gateway/(?P<TransitGateway>[^/]+)"), regexp.MustCompile("(?P<TransitGateway>[^/]+)/(?P<TransitGatewayAttachment>[^/]+)"), }, }, { Namespace: "AWS/VPN", Alias: "vpn", ResourceFilters: []*string{ aws.String("ec2:vpn-connection"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":vpn-connection/(?P<VpnId>[^/]+)"), }, }, { Namespace: "AWS/WAFV2", Alias: "wafv2", ResourceFilters: []*string{ aws.String("wafv2"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile("/webacl/(?P<WebACL>[^/]+)"), }, }, { Namespace: "AWS/WorkSpaces", Alias: "workspaces", ResourceFilters: []*string{ aws.String("workspaces:workspace"), aws.String("workspaces:directory"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":workspace/(?P<WorkspaceId>[^/]+)$"), regexp.MustCompile(":directory/(?P<DirectoryId>[^/]+)$"), }, }, { Namespace: "AWS/AOSS", Alias: "aoss", ResourceFilters: []*string{ aws.String("aoss:collection"), }, DimensionRegexps: []*regexp.Regexp{ regexp.MustCompile(":collection/(?P<CollectionId>[^/]+)"), }, }, }
Functions ¶
This section is empty.
Types ¶
type CustomNamespace ¶
type CustomNamespace struct { Regions []string `yaml:"regions"` Name string `yaml:"name"` Namespace string `yaml:"namespace"` Roles []Role `yaml:"roles"` Metrics []*Metric `yaml:"metrics"` CustomTags []model.Tag `yaml:"customTags"` DimensionNameRequirements []string `yaml:"dimensionNameRequirements"` RoundingPeriod *int64 `yaml:"roundingPeriod"` JobLevelMetricFields `yaml:",inline"` }
type Discovery ¶
type Discovery struct { ExportedTagsOnMetrics ExportedTagsOnMetrics `yaml:"exportedTagsOnMetrics"` Jobs []*Job `yaml:"jobs"` }
type ExportedTagsOnMetrics ¶ added in v0.56.0
type Job ¶
type Job struct { Regions []string `yaml:"regions"` Type string `yaml:"type"` Roles []Role `yaml:"roles"` SearchTags []model.Tag `yaml:"searchTags"` CustomTags []model.Tag `yaml:"customTags"` DimensionNameRequirements []string `yaml:"dimensionNameRequirements"` Metrics []*Metric `yaml:"metrics"` RoundingPeriod *int64 `yaml:"roundingPeriod"` JobLevelMetricFields `yaml:",inline"` }
type JobLevelMetricFields ¶
type ScrapeConf ¶
type ScrapeConf struct { APIVersion string `yaml:"apiVersion"` StsRegion string `yaml:"sts-region"` Discovery Discovery `yaml:"discovery"` Static []*Static `yaml:"static"` CustomNamespace []*CustomNamespace `yaml:"customNamespace"` }
func (*ScrapeConf) Validate ¶
func (c *ScrapeConf) Validate() error
type ServiceConfig ¶
Click to show internal directories.
Click to hide internal directories.