liveBook · Manning

FLBPluginConfigKey

As explained in Logs and Telemetry

FLBPluginConfigKey is a Fluent Bit Go-plugin interface function that retrieves a named configuration value for a plugin.

FLBPluginConfigKey retrieves a named configuration value for a Fluent Bit Go input plugin during initialization. The plugin can use the returned value to inspect settings such as Log_Level, validate configuration, and cache usable parameters. section 10.6.2

Use the call as part of an initialization flow:

  • Request a named attribute, such as Log_Level, from the plugin configuration. section 10.6.2
  • Apply appropriate type casting when collecting configuration values. section 10.6.2
  • Validate that required values are defined and sensible before caching them. section 10.6.2

Inspect the log level

During initialization, call input.FLBPluginConfigKey(plugin, "Log_Level"), compare the result with debug, and print the configuration when debugging is enabled. section 10.6.2

Listing 10.2 Implementation of the initialize function: in.go
//export FLBPluginInit
func FLBPluginInit(plugin unsafe.Pointer) int {
    params, err := getParams(plugin)  #1
    if err != nil {
        return input.FLB_ERROR    #2
    }

    if strings.Contains(strings.ToLower(
 input.FLBPluginConfigKey(plugin, "Log_Level")),
 "debug") {  #3
        log.Printf("%s configured with %v\n", 
 params.pluginName, params)       #4
    }

    validateErr := validateSqlParams(params)  #5
    if validateErr == nil {
        cacheParams(params)
        return input.FLB_OK   #6
    } else {
        fmt.Printf("%s - Configuration error - %s \n", 
 params.pluginName, validateErr)
        return input.FLB_ERROR
    }
}

The initialization implementation shows configuration retrieval, debug-level inspection, validation, parameter caching, and FLB_OK or FLB_ERROR returns. section 10.6.2

How Logs and Telemetry covers it

How deep it goes
Explains named lookup, type casting, validation, debug inspection, and caching, without detailing the interface implementation.
Examples
Demonstrates retrieving Log_Level and printing configuration when its value contains debug.
What it assumes
Assumes familiarity with Go input-plugin initialization, configuration attributes, type casting, and Fluent Bit status constants.
What you can do after
Builds initialization logic that reads, validates, caches, and conditionally logs plugin configuration.
How it connects
Connects input plugin initialization with configuration validation, parameter caching, logging, and return codes.

This explainer was generated by Manning's knowledge graph from the text of Logs and Telemetry. The section links point to the parts of the book it draws on.