Documentation ¶
Index ¶
- Constants
- Variables
- func CategoryBitsToString(bits uint64) string
- func FlowLogMessageToDataSourceID(messageType datatype.MessageType) uint32
- func GetK8sLabelConfigs(strs []string) []string
- func StringToCategoryBit(str string) uint64
- func StringsToCategoryBits(strs []string) uint64
- func StringsToDataSourceBits(strs []string) uint32
- func TagStringToDataSourceBits(s string) uint32
- type AndConditionHandler
- type ConditionHandler
- type Config
- type DataSourceID
- type ExportProtocol
- type ExporterCfg
- type ExportersConfig
- type OperatorID
- type OrConditionHandler
- type Sasl
- type StructTags
- type TagFilter
- type TagFilterCondition
Constants ¶
View Source
const ( DefaultExportQueueCount = 4 DefaultExportQueueSize = 100000 DefaultExportOtlpBatchSize = 32 DefaultExportOtherBatchSize = 1024 SecurityProtocol = "SASL_SSL" CATEGORY_K8S_LABEL = "$k8s.label" CATEGORY_TAG = "$tag" CATEGORY_METRICS = "$metrics" TOPIC_PREFIX = "deepflow." )
View Source
const ( NETWORK_1M = DataSourceID(flow_metrics.NETWORK_1M) NETWORK_MAP_1M = DataSourceID(flow_metrics.NETWORK_MAP_1M) APPLICATION_1M = DataSourceID(flow_metrics.APPLICATION_1M) APPLICATION_MAP_1M = DataSourceID(flow_metrics.APPLICATION_MAP_1M) NETWORK_1S = DataSourceID(flow_metrics.NETWORK_1S) NETWORK_MAP_1S = DataSourceID(flow_metrics.NETWORK_MAP_1S) APPLICATION_1S = DataSourceID(flow_metrics.APPLICATION_1S) APPLICATION_MAP_1S = DataSourceID(flow_metrics.APPLICATION_MAP_1S) )
View Source
const ( PERF_EVENT = DataSourceID(flow_metrics.METRICS_TABLE_ID_MAX) + 1 + iota L4_FLOW_LOG L7_FLOW_LOG MAX_DATASOURCE_ID )
View Source
const ( ConditionOr = "or" ConditionAnd = "and" )
View Source
const ( UNKNOWN_CATEGORY = 0 // tags FLOW_INFO uint64 = 1 << iota UNIVERSAL_TAG CUSTOM_TAG NATIVE_TAG NETWORK_LAYER TUNNEL_INFO TRANSPORT_LAYER APPLICATION_LAYER SERVICE_INFO TRACING_INFO CAPTURE_INFO EVENT_INFO // perf_event only DATA_LINK_LAYER // metrics L3_THROUGHPUT // network*/l4_flow_log L4_THROUGHPUT // network*/l4_flow_log TCP_SLOW // network*/l4_flow_log TCP_ERROR // network*/l4_flow_log APPLICATION // network*/l4_flow_log THROUGHPUT // application*/l7_flow_log ERROR // application*/l7_flow_log DELAY // all network/application/flow_log K8S_LABEL TAG = FLOW_INFO | UNIVERSAL_TAG | CUSTOM_TAG | NATIVE_TAG | NETWORK_LAYER | TUNNEL_INFO | TRANSPORT_LAYER | APPLICATION_LAYER | SERVICE_INFO | TRACING_INFO | CAPTURE_INFO | DATA_LINK_LAYER METRICS = L3_THROUGHPUT | L4_THROUGHPUT | TCP_SLOW | TCP_ERROR | APPLICATION | THROUGHPUT | ERROR | DELAY )
Variables ¶
View Source
var DefaultExportCategory = []string{"$service_info", "$tracing_info", "$network_layer", "$flow_info", "$transport_layer", "$application_layer", "$metrics"}
Functions ¶
func CategoryBitsToString ¶
func FlowLogMessageToDataSourceID ¶
func FlowLogMessageToDataSourceID(messageType datatype.MessageType) uint32
func GetK8sLabelConfigs ¶
func StringToCategoryBit ¶
func StringsToCategoryBits ¶
func StringsToDataSourceBits ¶
func TagStringToDataSourceBits ¶
'n|nm|a|am' used to distinguish different datasources under flow metrics.*
Types ¶
type AndConditionHandler ¶
type AndConditionHandler struct {
// contains filtered or unexported fields
}
func (*AndConditionHandler) Decision ¶
func (a *AndConditionHandler) Decision(val bool) (bool, bool)
func (*AndConditionHandler) Init ¶
func (a *AndConditionHandler) Init()
type ConditionHandler ¶
type Config ¶
type Config struct { Base *config.Config Exporters []ExporterCfg `yaml:"exporters"` }
type DataSourceID ¶
type DataSourceID uint32
func ToDataSourceID ¶
func ToDataSourceID(str string) (DataSourceID, error)
func (DataSourceID) IsMap ¶
func (d DataSourceID) IsMap() bool
func (DataSourceID) String ¶
func (d DataSourceID) String() string
func (DataSourceID) TopicString ¶
func (d DataSourceID) TopicString() string
type ExportProtocol ¶
type ExportProtocol uint8
const ( PROTOCOL_OTLP ExportProtocol = iota PROTOCOL_PROMETHEUS PROTOCOL_KAFKA MAX_PROTOCOL_ID )
func (ExportProtocol) String ¶
func (p ExportProtocol) String() string
type ExporterCfg ¶
type ExporterCfg struct { Protocol string `yaml:"protocol"` Enabled bool `yaml:"enabled"` ExportProtocol ExportProtocol // gen by `Protocol` DataSources []string `yaml:"data-sources"` DataSourceBits uint32 // gen by `DataSources` Endpoints []string `yaml:"endpoints"` RandomEndpoints []string // gen by `Endpoints` ` QueueCount int `yaml:"queue-count"` QueueSize int `yaml:"queue-size"` BatchSize int `yaml:"batch-size"` FlusTimeout int `yaml:"flush-timeout"` ExportEmptyTag bool `yaml:"export-empty-tag"` ExportEmptyMetricsDisabled bool `yaml:"export-empty-metrics-disabled"` EnumTranslateToNameDisabled bool `yaml:"enum-translate-to-name-disabled"` UniversalTagTranslateToNameDisabled bool `yaml:"universal-tag-translate-to-name-disabled"` TagFilterCondition TagFilterCondition `yaml:"tag-filter-condition"` TagFilters []TagFilter `yaml:"tag-filters"` ExportFields []string `yaml:"export-fields"` ExportFieldCategoryBits uint64 // gen by `ExportFields` ExportFieldNames []string // gen by `ExportFields` ExportFieldK8s []string // gen by `ExportFields` ExportFieldStructTags [MAX_DATASOURCE_ID][]StructTags // gen by `ExportFields` and init when exporting item first time TagFieltertStructTags [MAX_DATASOURCE_ID][]StructTags // gen by `TagFilters` and init when exporting item first time // private configuration ExtraHeaders map[string]string `yaml:"extra-headers"` // kafka private configuration Sasl Sasl `yaml:"sasl"` Topic string `yaml:"topic"` }
ExporterCfg holds configs of different exporters.
func (*ExporterCfg) Validate ¶
func (cfg *ExporterCfg) Validate() error
type ExportersConfig ¶
type ExportersConfig struct {
Exporters Config `yaml:"ingester"`
}
type OperatorID ¶
type OperatorID uint8
const ( EQ OperatorID = iota NEQ IN NOT_IN WILDCARD_EQ WILDCARD_NEQ REGEXP_EQ REGEXP_NEQ INVALID_OPERATOR_ID )
func (OperatorID) String ¶
func (o OperatorID) String() string
type OrConditionHandler ¶
type OrConditionHandler struct {
// contains filtered or unexported fields
}
func (*OrConditionHandler) Init ¶
func (o *OrConditionHandler) Init()
type Sasl ¶
type StructTags ¶
type StructTags struct { DataSourceID uint32 // get from interface DataSource() Name string // tag: 'json' MapName string // tag: 'map_json' FieldName string // field name, get from reflect Offset uintptr // get from reflect Category string // tag: 'category' CategoryBit uint64 // gen from tag: 'category' SubCategoryBit uint64 // gen from tag: 'sub' ToStringFuncName string // tag: 'to_string' ToStringFunc reflect.Value // gen from 'to_string' DataKind reflect.Kind // get from reflect DataTypeStr string // tag: 'data_type'. if 'DataKind' cannot determine the field type, it uses 'DataType' to determine DataType utils.DataType // gen from 'DataTypeStr' EnumFile string // tag: 'enumfile': as l7_protocol, from server/querier/db_descriptions/clickhouse/tag/enum/* EnumIntMap map[int]string // gen from content of `EnumFile` EnumStringMap map[string]string // gen from content of `EnumFile` UniversalTagMapID uint8 // gen from universal tags Omitempty bool // tag: 'omitempty', not support yet TagDataSourceStr string // tag: 'datasource' TagDataSourceBits uint32 // gen from 'TagDatasourceStr' // the field has tagFilter, if it is not nil, should caculate filter TagFilters []TagFilter // gen from 'ExporterCfg.TagFilters' IsExportedField bool // gen from 'ExporterCfg.ExportFields' }
type TagFilter ¶
type TagFilter struct { FieldName string `yaml:"field-name"` Operator string `yaml:"operator"` FieldValues []string `yaml:"field-values"` FieldFloat64s []float64 OperatorId OperatorID RegexpComplied *regexp.Regexp }
func (*TagFilter) MatchFloatValue ¶
func (*TagFilter) MatchStringValue ¶
func (*TagFilter) MatchValue ¶
type TagFilterCondition ¶
type TagFilterCondition struct {
ConditionType string `yaml:"type"`
}
TagFilterCondition 过滤条件配置,使用 map 结构便于后续扩展配置项
func (*TagFilterCondition) NewConditionHandler ¶
func (t *TagFilterCondition) NewConditionHandler() ConditionHandler
func (*TagFilterCondition) Validate ¶
func (t *TagFilterCondition) Validate()
Click to show internal directories.
Click to hide internal directories.