import { components } from 'api-types'
import { Axiom, Datadog, Grafana, Last9, Otlp, Sentry } from 'icons'
import { BracesIcon, Cloud, Server } from 'lucide-react'
const iconProps = {
height: 24,
width: 24,
className: 'text-foreground-light',
}
export type LogDrainType = components['schemas']['CreateBackendParamsOpenapi']['type']
export const LOG_DRAIN_TYPES = [
{
value: 'webhook',
name: 'Custom Endpoint',
description: 'Forward logs as a POST request to a custom HTTP endpoint',
icon: ,
},
{
value: 'otlp',
name: 'OpenTelemetry Protocol (OTLP)',
description: 'Send logs to any OpenTelemetry Protocol (OTLP) compatible endpoint',
icon: ,
},
{
value: 'datadog',
name: 'Datadog',
description: 'Datadog is a monitoring service for cloud-scale applications',
icon: ,
},
{
value: 'loki',
name: 'Loki',
description:
'Loki is an open-source log aggregation system designed to store and query logs from multiple sources',
icon: ,
},
{
value: 's3',
name: 'Amazon S3',
description: 'Forward logs to an S3 bucket',
icon: ,
},
{
value: 'sentry',
name: 'Sentry',
description:
'Sentry is an application monitoring service that helps developers identify and debug performance issues and errors',
icon: ,
},
{
value: 'axiom',
name: 'Axiom',
description:
'Axiom is a data platform designed to efficiently collect, store, and analyze event and telemetry data at massive scale.',
icon: ,
},
{
value: 'last9',
name: 'Last9',
description: 'Last9 is an observability platform for monitoring and telemetry data',
icon: ,
},
{
value: 'syslog',
name: 'Syslog',
description: 'Forward logs to a remote Syslog receiver using TCP or TLS, adhering to RFC 5424',
icon: ,
},
] as const
export const LOG_DRAIN_SOURCE_VALUES = LOG_DRAIN_TYPES.map((source) => source.value)
export const DATADOG_REGIONS = [
{
label: 'AP1',
value: 'AP1',
},
{
label: 'AP2',
value: 'AP2',
},
{
label: 'EU',
value: 'EU',
},
{
label: 'US1',
value: 'US1',
},
{
label: 'US1-FED',
value: 'US1-FED',
},
{
label: 'US3',
value: 'US3',
},
{
label: 'US5',
value: 'US5',
},
] as const
export const LAST9_REGIONS = [
{
label: 'US West 1',
value: 'US-WEST-1',
},
{
label: 'AP South 1',
value: 'AP-SOUTH-1',
},
] as const
export type LogDrainDatadogConfig = {
api_key: string
region: string
}
export type LogDrainWebhookConfig = {
url: string
}
export const OTLP_PROTOCOLS = [{ label: 'HTTP/Protobuf', value: 'http/protobuf' }] as const
export type LogDrainOtlpConfig = {
endpoint: string
protocol?: string
gzip?: boolean
headers?: Record
}