Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BQConfig ¶
type BQConfig struct { // GCP Project Project string // GCP Dataset Dataset string // GCP Table Table string }
BQConfig captures GCP BigQuery information for writing Observation Service logs to
type Config ¶
type Config struct { Port int `envconfig:"PORT" default:"9001"` DeploymentConfig DeploymentConfig NewRelicConfig newrelic.Config SentryConfig sentry.Config LogConsumerConfig LogConsumerConfig LogProducerConfig LogProducerConfig MonitoringConfig MonitoringConfig }
Config captures the config related to starting Observation Service
func (*Config) ListenAddress ¶
ListenAddress returns the Observation API port
type DeploymentConfig ¶
type DeploymentConfig struct { // ProjectName describes the CaraML project Timber services are deployed for ProjectName string `default:""` // ServiceName describes the CaraML Timber service name ServiceName string `default:""` // LogLevel captures the selected supported logging level LogLevel commonconfig.LogLevel `split_words:"false" default:"INFO"` // Maximum no. of go-routines that is allowed MaxGoRoutines int `default:"1000"` }
DeploymentConfig captures the config related to the deployment of Timber Services
type FluentdConfig ¶
type FluentdConfig struct { // The type of Data Sink for Observation logs flushed via Fluentd Kind FluentdProducerSinkKind `default:""` // Fluentd Host to connect to Host string `default:"localhost"` // Fluentd Port to connect to Port int `default:"24224"` // Fluentd Tag to match messages Tag string `default:"observation-service"` // BufferLimit specifies maximum no. of events that can be buffered on memory BufferLimit int `default:"8192"` // BQConfig captures the config related to initializing a BQ Sink BQConfig *BQConfig }
FluentdConfig captures necessary configuration to flush ObservationLog to multiple sinks
type FluentdProducerSinkKind ¶
type FluentdProducerSinkKind = string
FluentdProducerSinkKind captures the sink config for flushing Observation Service logs via Fluentd
const ( // LoggerNoopSinkFluentdProducer is a Fluentd No-Op ObservationLog Producer LoggerNoopSinkFluentdProducer FluentdProducerSinkKind = "" // LoggerBQSinkFluentdProducer is a Fluentd ObservationLog BigQuery Producer LoggerBQSinkFluentdProducer FluentdProducerSinkKind = "bq" )
type KafkaConfig ¶
type KafkaConfig struct { // Kafka Brokers to connect to, comma-delimited, in the form of "<broker_host>:<broker_port>" Brokers string // Kafka Topic to produce to/consume from Topic string // Largest record batch size allowed by Kafka (after compression if compression is enabled) MaxMessageBytes int `default:"1048588"` // The compression type for all data generated by the Producer CompressionType string `default:"none"` // ConnectTimeoutMS is the maximum duration (ms) the Kafka Producer/Consumer will block for to get Metadata, before timing out ConnectTimeoutMS int `default:"1000"` // PollInterval is the maximum duration (ms) the Kafka Consumer will block for, before timing out PollInterval int `default:"1000"` // What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server AutoOffsetReset string `default:"latest"` }
KafkaConfig captures all configurable parameters when configuring a Kafka Consumer and Producer
type LogConsumerConfig ¶
type LogConsumerConfig struct { // The type of Data Source for Observation logs Kind ObservationLoggerConsumerKind `default:""` // KafkaConfig captures the config related to initializing a Kafka Consumer KafkaConfig *KafkaConfig }
LogConsumerConfig captures the config related to consuming ObservationLog via a background process
type LogProducerConfig ¶
type LogProducerConfig struct { // The type of Data Sink for Observation logs Kind ObservationLoggerProducerKind `default:""` // Maximum no. of Observation logs to be stored in Go channel QueueLength int `default:"100000"` // KafkaConfig captures the config related to initializing a Kafka Producer KafkaConfig *KafkaConfig // FluentdConfig captures the config related to initializing a Fluentd instance FluentdConfig *FluentdConfig }
LogProducerConfig captures the config related to producing ObservationLog
type MetricSinkKind ¶
type MetricSinkKind = string
MetricSinkKind captures type of metrics sink
const ( // PrometheusMetricSink represents the Prometheus Metric Storage PrometheusMetricSink MetricSinkKind = "prometheus" // NoopMetricSink represents no Metric Storage NoopMetricSink MetricSinkKind = "" )
type MonitoringConfig ¶
type MonitoringConfig struct { // The type of Metrics Sink for Observation logs Kind MetricSinkKind `default:""` }
MonitoringConfig captures the config for monitoring metrics
type ObservationLoggerConsumerKind ¶
type ObservationLoggerConsumerKind = string
ObservationLoggerConsumerKind captures the consumer config for reading Observation Service logs
const ( // LoggerNoopConsumer is a No-Op ObservationLog Consumer LoggerNoopConsumer ObservationLoggerConsumerKind = "" // LoggerKafkaConsumer is a Kafka ObservationLog Consumer LoggerKafkaConsumer ObservationLoggerConsumerKind = "kafka" )
type ObservationLoggerProducerKind ¶
type ObservationLoggerProducerKind = string
ObservationLoggerProducerKind captures the producer config for flushing Observation Service logs
const ( // LoggerNoopProducer is a No-Op ObservationLog Producer LoggerNoopProducer ObservationLoggerProducerKind = "" // LoggerStdOutProducer is a Standard Output ObservationLog Producer LoggerStdOutProducer ObservationLoggerProducerKind = "stdout" // LoggerKafkaProducer is a Kafka ObservationLog Producer LoggerKafkaProducer ObservationLoggerProducerKind = "kafka" // LoggerFluentdProducer is a Fluentd ObservationLog Producer LoggerFluentdProducer ObservationLoggerProducerKind = "fluentd" )