@studion/infra-code-blocks
Version:
Studion common infra components
40 lines • 2.58 kB
TypeScript
import * as pulumi from '@pulumi/pulumi';
import * as aws from '@pulumi/aws';
import { OtelCollector } from '.';
import { OTLPReceiver } from './otlp-receiver';
import { PrometheusRemoteWriteExporter } from './prometheus-remote-write-exporter';
export declare namespace OtelCollectorBuilder {
type WithDefaultArgs = {
prometheusNamespace: PrometheusRemoteWriteExporter.Config['namespace'];
prometheusWorkspace: aws.amp.Workspace;
region: string;
logGroup: aws.cloudwatch.LogGroup;
logStreamName: OtelCollector.AwsCloudWatchLogsExporterConfig['log_stream_name'];
};
}
export declare class OtelCollectorBuilder {
private readonly _serviceName;
private readonly _env;
private readonly _configBuilder;
private _taskRoleInlinePolicies;
constructor(serviceName: pulumi.Input<string>, env: pulumi.Input<string>);
withOTLPReceiver(protocols?: OTLPReceiver.Protocol[]): this;
withBatchProcessor(name?: string, size?: number, maxSize?: number, timeout?: string): this;
withMemoryLimiterProcessor(checkInterval?: string, limitPercentage?: number, spikeLimitPercentage?: number): this;
withAWSXRayExporter(region: string): this;
withCloudWatchLogsExporter(region: OtelCollector.AwsCloudWatchLogsExporterConfig['region'], logGroup: aws.cloudwatch.LogGroup, logStreamName: OtelCollector.AwsCloudWatchLogsExporterConfig['log_stream_name']): this;
withHealthCheckExtension(endpoint?: string): this;
withPprofExtension(endpoint?: string): this;
withAPS(namespace: pulumi.Input<string>, workspace: aws.amp.Workspace, region: string): this;
withDebug(verbosity?: 'normal' | 'basic' | 'detailed'): this;
withTelemetry(logLevel?: 'debug' | 'warn' | 'error', metricsVerbosity?: 'basic' | 'normal' | 'detailed'): this;
withMetricsPipeline(receivers: OtelCollector.ReceiverType[], processors: OtelCollector.ProcessorType[], exporters: OtelCollector.ExporterType[]): this;
withTracesPipeline(receivers: OtelCollector.ReceiverType[], processors: OtelCollector.ProcessorType[], exporters: OtelCollector.ExporterType[]): this;
withLogsPipeline(receivers: OtelCollector.ReceiverType[], processors: OtelCollector.ProcessorType[], exporters: OtelCollector.ExporterType[]): this;
withDefault({ prometheusNamespace, prometheusWorkspace, region, logGroup, logStreamName, }: OtelCollectorBuilder.WithDefaultArgs): this;
build(): OtelCollector;
private createAPSInlinePolicy;
private createAWSXRayPolicy;
private createCloudWatchLogsPolicy;
}
//# sourceMappingURL=builder.d.ts.map