Documentation ¶
Overview ¶
Package cyphergraphexporter implements an OpenTelemetry Collector exporter that sends trace data to a graph database using the Cypher language (Neo4j, Memgraph, ...)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFactory ¶
NewFactory creates a factory for the CypherGraph exporter.
Types ¶
type Config ¶
type Config struct { configretry.BackOffConfig `mapstructure:"retry_on_failure"` // DatabaseURI is the target address of a Neo4j instance. The URI is the Bolt URI // thats uses the following scheme: // - 'bolt', 'bolt+s' or 'bolt+ssc' allow to connects to a single instance database // - 'neo4j', 'neo4j+s' or 'neo4j+ssc' allow to connect to a cluster of databases // // Refer to [neo4j.NewDriverWithContext] documentation to understand how this value // is used. DatabaseURI string `mapstructure:"db_uri,omitempty"` // Username corresponds to the user name used in the basic authentication process // to the database. Username string `mapstructure:"username,omitempty"` // Password corresponds to the secret used in the basic authentication process // to the database. Password configopaque.String `mapstructure:"password,omitempty"` // BearerToken corresponds to a base64-encoded string generated by a Single Sign-On Provider. BearerToken configopaque.String `mapstructure:"bearer_token,omitempty"` // KerberosTicket corresponds to a base64-encoded string representing the kerberos ticket. KerberosTicket configopaque.String `mapstructure:"kerberos_ticket,omitempty"` // UserAgent corresponds to the value of the User-Agent field that is used in // the "bolt" (websocket) connection. UserAgent string `mapstructure:"user_agent,omitempty"` // RessourceMappers allows to generate multiple nodes with different labels in the graph // for a single [go.opentelemetry.io/collector/pdata/pcommon.Resource] based on its attributes. // Graph node labels are provided as keys of the ResourceMappers field: // resources: // "k8s.pod": // identified_by: "k8s.pod.uid" // other_properties: [ "k8s.pod.name" ] // "k8s.node": // identified_by: "k8s.node.uid" // other_properties: [ "k8s.node.name" ] // This configuration will generate for each spans processed by the receiver two different // resource nodes: one with label 'k8s.node' and one with label 'k8s.pod'. Nodes with the same // label sharing the same value of the attribute referenced in the 'identified_by' field will be // merged together. This configuration will only generate one node for each single pods more // one for each single nodes in the kubernetes cluster. ResourceMappers map[string]*ResourceMapper `mapstructure:"resources"` }
Config defines configuration for the Cypher Graph exporter.
type ResourceMapper ¶
type ResourceMapper struct { // IdentifiedByKey represents the attribute Key of a resource whose value will be used as index for // for a given resource node, if this property is missing, the resource node will not be added in the graph. IdentifiedByKey string `mapstructure:"identified_by"` // OtherProperties represents additionnal properties added to the resource nodes that will not be indexed. OtherProperties []string `mapstructure:"other_properties"` }
ResourceMapper describes how go.opentelemetry.io/collector/pdata/pcommon.Resource attributes get parsed to create a node in the graph.
Directories ¶
Path | Synopsis |
---|---|
internal
|
|
graphmodel
Package graphmodel provides methods that encode opentelemetry pipeline data into a property graph through cypher queries.
|
Package graphmodel provides methods that encode opentelemetry pipeline data into a property graph through cypher queries. |
neo4jdriverwrap
Package neo4jdriverwrap holds the logic of adapting neo4jdriver options and functions to be usable from the OpenTelemetry exporter module.
|
Package neo4jdriverwrap holds the logic of adapting neo4jdriver options and functions to be usable from the OpenTelemetry exporter module. |
Click to show internal directories.
Click to hide internal directories.