1package pipeline 2 3type EntityInfo struct { 4 Type string `json:"type"` 5 Description string `json:"description"` 6 Example interface{} `json:"example,omitempty"` 7} 8 9var SubscribersRegistry = []EntityInfo{ 10 { 11 Type: SubscriberTypeBuiltin, 12 Description: "apply builtin feature subscribe logic", 13 }, 14 { 15 Type: SubscriberTypeManagedStream, 16 Description: "apply managed stream subscribe logic", 17 }, 18} 19 20var FrameOutputsRegistry = []EntityInfo{ 21 { 22 Type: FrameOutputTypeManagedStream, 23 Description: "only send schema when structure changes (note this also requires a matching subscriber)", 24 Example: ManagedStreamOutputConfig{}, 25 }, 26 { 27 Type: FrameOutputTypeConditional, 28 Description: "send to an output depending on frame values", 29 Example: ConditionalOutputConfig{}, 30 }, 31 { 32 Type: FrameOutputTypeRedirect, 33 Description: "redirect for processing by another channel rule", 34 }, 35 { 36 Type: FrameOutputTypeThreshold, 37 Description: "output field threshold boundaries cross into new channel", 38 }, 39 { 40 Type: FrameOutputTypeChangeLog, 41 Description: "output field changes into new channel", 42 }, 43 { 44 Type: FrameOutputTypeRemoteWrite, 45 Description: "output to remote write endpoint", 46 }, 47 { 48 Type: FrameOutputTypeLoki, 49 Description: "output frame as JSON to Loki", 50 }, 51} 52 53var ConvertersRegistry = []EntityInfo{ 54 { 55 Type: ConverterTypeJsonAuto, 56 Description: "automatic recursive JSON to Frame conversion", 57 }, 58 { 59 Type: ConverterTypeJsonExact, 60 Description: "JSON to Frame conversion according to exact list of fields", 61 }, 62 { 63 Type: ConverterTypeInfluxAuto, 64 Description: "accept influx line protocol", 65 Example: AutoInfluxConverterConfig{ 66 FrameFormat: "labels_column", 67 }, 68 }, 69 { 70 Type: ConverterTypeJsonFrame, 71 Description: "JSON-encoded Grafana data frame", 72 }, 73} 74 75var FrameProcessorsRegistry = []EntityInfo{ 76 { 77 Type: FrameProcessorTypeKeepFields, 78 Description: "list the fields that should stay", 79 Example: KeepFieldsFrameProcessorConfig{}, 80 }, 81 { 82 Type: FrameProcessorTypeDropFields, 83 Description: "list the fields that should be removed", 84 Example: DropFieldsFrameProcessorConfig{}, 85 }, 86} 87 88var DataOutputsRegistry = []EntityInfo{ 89 { 90 Type: DataOutputTypeBuiltin, 91 Description: "use builtin publish handler", 92 }, 93 { 94 Type: DataOutputTypeRedirect, 95 Description: "redirect data processing to another channel rule", 96 }, 97 { 98 Type: DataOutputTypeLoki, 99 Description: "output data to Loki as logs", 100 }, 101} 102