createScraper

The CreateScraper operation creates a scraper to collect metrics. A scraper pulls metrics from Prometheus-compatible sources and sends them to your Amazon Managed Service for Prometheus workspace. You can configure scrapers to collect metrics from Amazon EKS clusters, Amazon MSK clusters, or from VPC-based sources that support DNS-based service discovery. Scrapers are flexible, and can be configured to control what metrics are collected, the frequency of collection, what transformations are applied to the metrics, and more.

An IAM role will be created for you that Amazon Managed Service for Prometheus uses to access the metrics in your source. You must configure this role with a policy that allows it to scrape metrics from your source. For Amazon EKS sources, see Configuring your Amazon EKS cluster in the Amazon Managed Service for Prometheus User Guide.

The scrapeConfiguration parameter contains the base-64 encoded YAML configuration for the scraper.

When creating a scraper, the service creates a Network Interface in each Availability Zone that are passed into CreateScraper through subnets. These network interfaces are used to connect to your source within the VPC for scraping metrics.

For more information about collectors, including what metrics are collected, and how to configure the scraper, see Using an Amazon Web Services managed collector in the Amazon Managed Service for Prometheus User Guide.

Samples

import aws.sdk.kotlin.services.amp.model.AmpConfiguration
import aws.sdk.kotlin.services.amp.model.Destination
import aws.sdk.kotlin.services.amp.model.EksConfiguration
import aws.sdk.kotlin.services.amp.model.ScrapeConfiguration
import aws.sdk.kotlin.services.amp.model.Source
import aws.sdk.kotlin.services.amp.model.VpcConfiguration

fun main() { 
   //sampleStart 
   // CreateScraper with optional alias input, optional clientToken input, and one set of tags
val resp = ampClient.createScraper {
    alias = "alias"
    scrapeConfiguration = ScrapeConfiguration.ConfigurationBlob("blob".encodeAsByteArray())
    source = Source.EksConfiguration(EksConfiguration {
        clusterArn = "arn:aws:eks:us-west-2:123456789012:cluster/example"
        securityGroupIds = listOf<String>(
            "sg-abc123"
        )
        subnetIds = listOf<String>(
            "subnet-abc123"
        )
    }
    )
    destination = Destination.AmpConfiguration(AmpConfiguration {
        workspaceArn = "arn:aws:aps:us-west-2:123456789012:workspace/ws-ogh2u499-ce12-hg89-v6c7-123412341234"
    }
    )
    clientToken = "token"
    tags = mapOf<String, String>(
        "exampleTag" to "exampleValue"
    )
} 
   //sampleEnd
}
import aws.sdk.kotlin.services.amp.model.AmpConfiguration
import aws.sdk.kotlin.services.amp.model.Destination
import aws.sdk.kotlin.services.amp.model.EksConfiguration
import aws.sdk.kotlin.services.amp.model.ScrapeConfiguration
import aws.sdk.kotlin.services.amp.model.Source
import aws.sdk.kotlin.services.amp.model.VpcConfiguration

fun main() { 
   //sampleStart 
   // CreateScraper with generic VPC config with mandatory securityGroupIds and subnetIds
val resp = ampClient.createScraper {
    alias = "alias"
    scrapeConfiguration = ScrapeConfiguration.ConfigurationBlob("blob".encodeAsByteArray())
    source = Source.VpcConfiguration(VpcConfiguration {
        securityGroupIds = listOf<String>(
            "sg-abc123"
        )
        subnetIds = listOf<String>(
            "subnet-abc123"
        )
    }
    )
    destination = Destination.AmpConfiguration(AmpConfiguration {
        workspaceArn = "arn:aws:aps:us-west-2:123456789012:workspace/ws-ogh2u499-ce12-hg89-v6c7-123412341234"
    }
    )
    clientToken = "token"
    tags = mapOf<String, String>(
        "exampleTag" to "exampleValue"
    )
} 
   //sampleEnd
}