processor

package
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

README

processor

-- import "github.com/newrelic/nri-flex/internal/processor"

Usage

func AutoSetMetricAPI
func AutoSetMetricAPI(currentSample *map[string]interface{}, api *load.API)

AutoSetMetricAPI automatically set metrics for use with the metric api

func AutoSetMetricInfra
func AutoSetMetricInfra(k string, v interface{}, metricSet *metric.Set, metrics map[string]string, autoSet bool, mode string)

AutoSetMetricInfra parse to number

func AutoSetStandard
func AutoSetStandard(currentSample *map[string]interface{}, api *load.API, workingEntity *integration.Entity, eventType string, config *load.Config)

AutoSetStandard x

func CreateMetricSets
func CreateMetricSets(samples []interface{}, config *load.Config, i int, mergeMetric bool, samplesToMerge *load.SamplesToMerge, originalAPINo int)

CreateMetricSets creates metric sets hren added samplesToMerge parameter, moved merge operation to CreateMetricSets so that the "Run...." functions still apply before merge

func FinalMerge
func FinalMerge(data map[string]interface{}) []interface{}

FinalMerge Perform final data merging Separates detected samples and already flattened attributes

func FindStartKey
func FindStartKey(mainDataset *map[string]interface{}, startKeys []string, inheritAttributes bool)

FindStartKey start at a different section of a payload

func FlattenData
func FlattenData(unknown interface{}, data map[string]interface{}, key string, sampleKeys map[string]string, api *load.API) map[string]interface{}

FlattenData flatten an interface

func ProcessSamplesMergeJoin
func ProcessSamplesMergeJoin(samplesToMerge *load.SamplesToMerge, yml *load.Config)

ProcessSamplesMergeJoin used to merge/join multiple samples together hren

func RunDataHandler
func RunDataHandler(dataSets []interface{}, samplesToMerge *load.SamplesToMerge, i int, cfg *load.Config, originalAPINo int)

RunDataHandler handles the data received for processing The originalAPINo is to track the original API sequential No. in the Flex config file. This is to diffentiate the new API Seq No. created by StoreLookup. The originalAPINo is used for Merge and Join operation

func RunEventFilter
func RunEventFilter(filters []load.Filter, createEvent *bool, k string, v interface{})

RunEventFilter filters events generated

func RunKeepKeys
func RunKeepKeys(keepKeys []string, key *string, currentSample *map[string]interface{})

RunKeepKeys will remove the key if is not defined in keep_keys.

func RunKeyConversion
func RunKeyConversion(key *string, api load.API, v interface{}, SkipProcessing *[]string)

RunKeyConversion handles to lower and snake to camel case for keys

func RunKeyFilter
func RunKeyFilter(filters []load.Filter, currentSample *map[string]interface{}, k string)

RunKeyFilter filters keys generated

func RunKeyRemover
func RunKeyRemover(currentSample *map[string]interface{}, removeKeys []string)

RunKeyRemover Remove unwanted keys with regex

func RunKeyRenamer
func RunKeyRenamer(renameKeys map[string]string, key *string)

RunKeyRenamer find keys with regex, and replace the value

func RunLazyFlatten
func RunLazyFlatten(ds *map[string]interface{}, cfg *load.Config, api int)

RunLazyFlatten lazy flattens the payload

func RunMathCalculations
func RunMathCalculations(math *map[string]string, currentSample *map[string]interface{})

RunMathCalculations performs math calculations

func RunPluckNumbers
func RunPluckNumbers(v *interface{}, api load.API, key *string)

RunPluckNumbers pluck numbers out automatically with ValueParser eg. "sample_start_time = 1552864614.137869 (Sun, 17 Mar 2019 23:16:54 GMT)" returns 1552864614.137869

func RunSampleFilter
func RunSampleFilter(currentSample map[string]interface{}, sampleFilters []map[string]string, createSample *bool)

RunSampleFilter Filters samples generated

func RunSampleFilterMatchAll
func RunSampleFilterMatchAll(currentSample map[string]interface{}, sampleFilters []map[string]string, createSample *bool)

Sample Filter to match all keys

func RunSampleRenamer
func RunSampleRenamer(renameSamples map[string]string, currentSample *map[string]interface{}, key string, eventType *string)

RunSampleRenamer using regex if sample has a key that matches, make that a different sample (event_type)

func RunSubParse
func RunSubParse(subParse []load.Parse, currentSample *map[string]interface{}, key string, v interface{})

RunSubParse splits nested values out from one line eg. db0:keys=1,expires=0,avg_ttl=0

func RunValConversion
func RunValConversion(v *interface{}, api load.API, key *string)

RunValConversion performs percentage to decimal & nano second to millisecond

func RunValueMapper
func RunValueMapper(mapKeys map[string][]string, currentSample *map[string]interface{}, key string, v *interface{})

RunValueMapper map the value using regex grouping for keys e.g. "*.?\s(Service Status)=>$1-Good" -> "Service Status-Good"

func RunValueParser
func RunValueParser(v *interface{}, api load.API, key *string)

RunValueParser use regex to find a key, and pluck out its value by regex

func RunValueTransformer
func RunValueTransformer(v *interface{}, api load.API, key *string)

RunValueTransformer use regex to find a key, and then transform the value eg. key: world key: hello-${value} == key: hello-world

func SetEventType
func SetEventType(currentSample *map[string]interface{}, eventType *string, apiEventType string, apiMerge string, apiName string)

SetEventType sets the metricSet's eventType

func StoreLookups
func StoreLookups(storeLookups map[string]string, key *string, lookupStore *map[string]map[string]struct{}, v *interface{})

StoreLookups if key is found (using regex), store the values in the lookupStore as the defined lookupStoreKey for later use

func StripKeys
func StripKeys(ds *map[string]interface{}, stripKeys []string)

StripKeys strip defined keys out

func VariableLookups
func VariableLookups(variableLookups map[string]string, key *string, variableStore *map[string]string, v *interface{})

VariableLookups if key is found (using regex), store the value in the variableStore, as the defined by the variableStoreKey for later use

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AutoSetMetricAPI

func AutoSetMetricAPI(currentSample *map[string]interface{}, api *load.API)

AutoSetMetricAPI automatically set metrics for use with the metric api

func AutoSetMetricInfra

func AutoSetMetricInfra(k string, v interface{}, metricSet *metric.Set, metrics map[string]string, autoSet bool, mode string)

AutoSetMetricInfra parse to number

func AutoSetStandard

func AutoSetStandard(currentSample *map[string]interface{}, api *load.API, workingEntity *integration.Entity, eventType string, config *load.Config)

AutoSetStandard x

func CreateMetricSets

func CreateMetricSets(samples []interface{}, config *load.Config, i int, mergeMetric bool, samplesToMerge *load.SamplesToMerge, originalAPINo int)

CreateMetricSets creates metric sets hren added samplesToMerge parameter, moved merge operation to CreateMetricSets so that the "Run...." functions still apply before merge

func FinalMerge

func FinalMerge(data map[string]interface{}) []interface{}

FinalMerge Perform final data merging Separates detected samples and already flattened attributes

func FindStartKey

func FindStartKey(mainDataset *map[string]interface{}, startKeys []string, inheritAttributes bool)

FindStartKey start at a different section of a payload

func FlattenData

func FlattenData(unknown interface{}, data map[string]interface{}, key string, sampleKeys map[string]string, api *load.API) map[string]interface{}

FlattenData flatten an interface

func ProcessSamplesMergeJoin added in v0.9.3

func ProcessSamplesMergeJoin(samplesToMerge *load.SamplesToMerge, yml *load.Config)

ProcessSamplesMergeJoin used to merge/join multiple samples together hren

func RunDataHandler

func RunDataHandler(dataSets []interface{}, samplesToMerge *load.SamplesToMerge, i int, cfg *load.Config, originalAPINo int)

RunDataHandler handles the data received for processing The originalAPINo is to track the original API sequential No. in the Flex config file. This is to diffentiate the new API Seq No. created by StoreLookup. The originalAPINo is used for Merge and Join operation

func RunEventFilter

func RunEventFilter(filters []load.Filter, createEvent *bool, k string, v interface{})

RunEventFilter filters events generated

func RunKeepKeys

func RunKeepKeys(keepKeys []string, key *string, currentSample *map[string]interface{})

RunKeepKeys will remove the key if is not defined in keep_keys.

func RunKeyConversion

func RunKeyConversion(key *string, api load.API, v interface{}, SkipProcessing *[]string)

RunKeyConversion handles to lower and snake to camel case for keys

func RunKeyFilter

func RunKeyFilter(filters []load.Filter, currentSample *map[string]interface{}, k string)

RunKeyFilter filters keys generated

func RunKeyRemover

func RunKeyRemover(currentSample *map[string]interface{}, removeKeys []string)

RunKeyRemover Remove unwanted keys with regex

func RunKeyRenamer

func RunKeyRenamer(renameKeys map[string]string, key *string)

RunKeyRenamer find keys with regex, and replace the value

func RunLazyFlatten

func RunLazyFlatten(ds *map[string]interface{}, cfg *load.Config, api int)

RunLazyFlatten lazy flattens the payload

func RunMathCalculations

func RunMathCalculations(math *map[string]string, currentSample *map[string]interface{})

RunMathCalculations performs math calculations

func RunPluckNumbers

func RunPluckNumbers(v *interface{}, api load.API, key *string)

RunPluckNumbers pluck numbers out automatically with ValueParser eg. "sample_start_time = 1552864614.137869 (Sun, 17 Mar 2019 23:16:54 GMT)" returns 1552864614.137869

func RunSampleFilter

func RunSampleFilter(currentSample map[string]interface{}, sampleFilters []map[string]string, createSample *bool)

RunSampleFilter Filters samples generated

func RunSampleFilterMatchAll added in v1.2.0

func RunSampleFilterMatchAll(currentSample map[string]interface{}, sampleFilters []map[string]string, createSample *bool)

Sample Filter to match all keys

func RunSampleRenamer

func RunSampleRenamer(renameSamples map[string]string, currentSample *map[string]interface{}, key string, eventType *string)

RunSampleRenamer using regex if sample has a key that matches, make that a different sample (event_type)

func RunSubParse

func RunSubParse(subParse []load.Parse, currentSample *map[string]interface{}, key string, v interface{})

RunSubParse splits nested values out from one line eg. db0:keys=1,expires=0,avg_ttl=0

func RunValConversion

func RunValConversion(v *interface{}, api load.API, key *string)

RunValConversion performs percentage to decimal & nano second to millisecond

func RunValueMapper added in v0.9.3

func RunValueMapper(mapKeys map[string][]string, currentSample *map[string]interface{}, key string, v *interface{})

RunValueMapper map the value using regex grouping for keys e.g. "*.?\s(Service Status)=>$1-Good" -> "Service Status-Good"

func RunValueParser

func RunValueParser(v *interface{}, api load.API, key *string)

RunValueParser use regex to find a key, and pluck out its value by regex

func RunValueTransformer

func RunValueTransformer(v *interface{}, api load.API, key *string)

RunValueTransformer use regex to find a key, and then transform the value eg. key: world key: hello-${value} == key: hello-world

func SetEventType

func SetEventType(currentSample *map[string]interface{}, eventType *string, apiEventType string, apiMerge string, apiName string)

SetEventType sets the metricSet's eventType

func StoreLookups

func StoreLookups(storeLookups map[string]string, lookupStore *map[string]map[string]struct{}, key string, v interface{})

StoreLookups if key is found (using regex), store the values in the lookupStore as the defined lookupStoreKey for later use

func StripKeys

func StripKeys(ds *map[string]interface{}, stripKeys []string)

StripKeys strip defined keys out

func VariableLookups

func VariableLookups(variableLookups map[string]string, variableStore *map[string]string, key string, v interface{})

VariableLookups if key is found (using regex), store the value in the variableStore, as the defined by the variableStoreKey for later use

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL