UNPKG

@pulumiverse/grafana

Version:

A Pulumi package for creating and managing grafana.

226 lines (225 loc) 8.86 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * import * as grafana from "@pulumi/grafana"; * import * as grafana from "@pulumiverse/grafana"; * * const test = grafana.cloud.getStack({ * slug: "gcloudstacktest", * }); * const testGetRole = aws.iam.getRole({ * name: "my-role", * }); * const testAwsAccount = new grafana.cloudprovider.AwsAccount("test", { * stackId: test.then(test => test.id), * roleArn: testGetRole.then(testGetRole => testGetRole.arn), * regions: [ * "us-east-1", * "us-east-2", * "us-west-1", * ], * }); * const testAwsCloudwatchScrapeJob = new grafana.cloudprovider.AwsCloudwatchScrapeJob("test", { * stackId: test.then(test => test.id), * name: "my-cloudwatch-scrape-job", * awsAccountResourceId: testAwsAccount.resourceId, * exportTags: true, * services: [{ * name: "AWS/EC2", * metrics: [ * { * name: "CPUUtilization", * statistics: ["Average"], * }, * { * name: "StatusCheckFailed", * statistics: ["Maximum"], * }, * ], * scrapeIntervalSeconds: 300, * resourceDiscoveryTagFilters: [{ * key: "k8s.io/cluster-autoscaler/enabled", * value: "true", * }], * tagsToAddToMetrics: ["eks:cluster-name"], * }], * customNamespaces: [{ * name: "CoolApp", * metrics: [{ * name: "CoolMetric", * statistics: [ * "Maximum", * "Sum", * ], * }], * scrapeIntervalSeconds: 300, * }], * staticLabels: { * label1: "value1", * label2: "value2", * }, * }); * const testGetAwsCloudwatchScrapeJob = pulumi.all([test, testAwsCloudwatchScrapeJob.name]).apply(([test, name]) => grafana.cloudProvider.getAwsCloudwatchScrapeJobOutput({ * stackId: test.id, * name: name, * })); * ``` */ export declare function getAwsCloudwatchScrapeJob(args: GetAwsCloudwatchScrapeJobArgs, opts?: pulumi.InvokeOptions): Promise<GetAwsCloudwatchScrapeJobResult>; /** * A collection of arguments for invoking getAwsCloudwatchScrapeJob. */ export interface GetAwsCloudwatchScrapeJobArgs { /** * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ customNamespaces?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespace[]; name: string; /** * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ services?: inputs.cloudProvider.GetAwsCloudwatchScrapeJobService[]; stackId: string; } /** * A collection of values returned by getAwsCloudwatchScrapeJob. */ export interface GetAwsCloudwatchScrapeJobResult { /** * The ID assigned by the Grafana Cloud Provider API to an AWS Account resource that should be associated with this CloudWatch Scrape Job. This can be provided by the `resourceId` attribute of the `grafana.cloudProvider.AwsAccount` resource. */ readonly awsAccountResourceId: string; /** * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ readonly customNamespaces?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespace[]; /** * When the CloudWatch Scrape Job is disabled, this will show the reason that it is in that state. */ readonly disabledReason: string; /** * Whether the CloudWatch Scrape Job is enabled or not. */ readonly enabled: boolean; /** * When enabled, AWS resource tags are exported as Prometheus labels to metrics formatted as `aws_<service_name>_info`. */ readonly exportTags: boolean; readonly id: string; readonly name: string; /** * The set of AWS region names that this CloudWatch Scrape Job is configured to scrape. */ readonly regions: string[]; /** * When true, the `regions` attribute will be the set of regions configured in the override. When false, the `regions` attribute will be the set of regions belonging to the AWS Account resource that is associated with this CloudWatch Scrape Job. */ readonly regionsSubsetOverrideUsed: boolean; /** * The AWS ARN of the IAM role associated with the AWS Account resource that is being used by this CloudWatch Scrape Job. */ readonly roleArn: string; /** * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ readonly services?: outputs.cloudProvider.GetAwsCloudwatchScrapeJobService[]; readonly stackId: string; /** * A set of static labels to add to all metrics exported by this scrape job. */ readonly staticLabels: { [key: string]: string; }; } /** * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * import * as grafana from "@pulumi/grafana"; * import * as grafana from "@pulumiverse/grafana"; * * const test = grafana.cloud.getStack({ * slug: "gcloudstacktest", * }); * const testGetRole = aws.iam.getRole({ * name: "my-role", * }); * const testAwsAccount = new grafana.cloudprovider.AwsAccount("test", { * stackId: test.then(test => test.id), * roleArn: testGetRole.then(testGetRole => testGetRole.arn), * regions: [ * "us-east-1", * "us-east-2", * "us-west-1", * ], * }); * const testAwsCloudwatchScrapeJob = new grafana.cloudprovider.AwsCloudwatchScrapeJob("test", { * stackId: test.then(test => test.id), * name: "my-cloudwatch-scrape-job", * awsAccountResourceId: testAwsAccount.resourceId, * exportTags: true, * services: [{ * name: "AWS/EC2", * metrics: [ * { * name: "CPUUtilization", * statistics: ["Average"], * }, * { * name: "StatusCheckFailed", * statistics: ["Maximum"], * }, * ], * scrapeIntervalSeconds: 300, * resourceDiscoveryTagFilters: [{ * key: "k8s.io/cluster-autoscaler/enabled", * value: "true", * }], * tagsToAddToMetrics: ["eks:cluster-name"], * }], * customNamespaces: [{ * name: "CoolApp", * metrics: [{ * name: "CoolMetric", * statistics: [ * "Maximum", * "Sum", * ], * }], * scrapeIntervalSeconds: 300, * }], * staticLabels: { * label1: "value1", * label2: "value2", * }, * }); * const testGetAwsCloudwatchScrapeJob = pulumi.all([test, testAwsCloudwatchScrapeJob.name]).apply(([test, name]) => grafana.cloudProvider.getAwsCloudwatchScrapeJobOutput({ * stackId: test.id, * name: name, * })); * ``` */ export declare function getAwsCloudwatchScrapeJobOutput(args: GetAwsCloudwatchScrapeJobOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetAwsCloudwatchScrapeJobResult>; /** * A collection of arguments for invoking getAwsCloudwatchScrapeJob. */ export interface GetAwsCloudwatchScrapeJobOutputArgs { /** * Zero or more configuration blocks to configure custom namespaces for the CloudWatch Scrape Job to scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ customNamespaces?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobCustomNamespaceArgs>[]>; name: pulumi.Input<string>; /** * One or more configuration blocks to dictate what this CloudWatch Scrape Job should scrape. Each block must have a distinct `name` attribute. When accessing this as an attribute reference, it is a list of objects. */ services?: pulumi.Input<pulumi.Input<inputs.cloudProvider.GetAwsCloudwatchScrapeJobServiceArgs>[]>; stackId: pulumi.Input<string>; }