OpenTelemetry OTLP service that accept Trace data and Send to InsightFinder.
- Java JRE 21 or higher
- OpenTelemetry Collector
InsightFinder requires a “OpenTelemetry Collector” to be set up to stream data.
- Download the OpenTelemetry official release from GitHub.
- Extract the downloaded tarball:
tar -xvzf otelcol-<platform>-amd64.tar.gz- Run the collector with the configuration file:
./otelcol --config=config.yamlHere is the example of an OpenTelemetry collector that collects data and send to InsightFinder server:
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4418
processors:
batch:
exporters:
otlp/insightfinder:
endpoint: 127.0.0.1:4317
tls:
insecure: true
headers:
ifuser: "user"
iflicenseKey: "your-licence-key"
ifproject: "project-to-send-trace-data"
service:
telemetry:
metrics:
address: 0.0.0.0:8889
pipelines:
traces:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ otlp/insightfinder ]receivers.otlp.protocols.http.endpoint: The endpoint on which the OpenTelemetry Collector will listen for trace data.exportersA list of exporters the collector can use.otlp/insightfinder: The exporter name. Exporter name should always start withotlp/.endpoint: The trace agent endpoint.tls.insecure: A boolean indicating whether to use insecure connection.headers.ifuser: The InsightFinder username.headers.iflicenseKey: The InsightFinder license key.headers.ifproject: The InsightFinder project name.
pipelines.traces.exporters: Specifies the exporters to use for traces. The exporter names should match the names in theexporterssection.
- Setup JDK 21 or above.
- Start OpenTelemetry Collector
- Put application.yml in the same directory as the jar file.
- Run the following command to start the application.
java -jar <path>/traceserver-1.0.0-SNAPSHOT.jarThe name of the configuration file must be application.yml.
grpc:
port: 4317
maxInboundMessageSizeInKB: 16384
insightFinder:
serverUrl: https://stg.insightfinder.com
serverUri: /api/v1/customprojectrawdata
checkAndCreateUri: /api/v1/check-and-add-custom-project
promptUri: /api/v1/prompt
promptProjectName: promptTest
promptSystemName: TraceAgentTest
jaeger:
serverName: localhost
tlsEnabled: false
grpcPort: 4317
uiPort: 16686
app:
traceWorkerNum: 5
traceDelayInMillis: 60000
tls:
enabled: false
# Path to full-chain certificate file (PEM)
certificateFile: ""
# Path to the private key file.
privateKeyFile: ""
data:
attrMapping: # expect the field is in tags
prompt_response:
fieldPaths:
- "tags.recommendations prompt"
prompt_token:
fieldPaths:
- "tags.prompt_token_usage"
- "tags.token_usage"
response_token:
fieldPaths:
- "tags.output_token_usage"
error:
fieldPaths:
- "tags.error_messages"
promptExtraction:
processPath: "tags.traceloop.entity.name"
processName: "RunnableSequence.workflow"
promptConfig:
input_prompt:
fieldPath: "tags.traceloop.entity.input"
valuePath: "inputs"
output_prompt:
fieldPath: "tags.traceloop.entity.output"
valuePath: "outputs"This section configures the trace agent gRPC server settings.
port: The port on which the trace agent gRPC server will listen.maxInboundMessageSizeInKB: The maximum size of inbound messages in kilobytes, default is 16,384 (16 MB).
This section contains the configuration for connecting to InsightFinder.
serverUrl: The InsightFinder domain URL.serverUri: The InsightFinder endpoint to receive trace data.checkAndCreateUri: The InsightFinder endpoint for checking and creating custom projects.promptUri: The InsightFinder endpoint for sending prompt data.promptProjectName: The InsightFinder project name for prompt data.promptSystemName: The InsightFinder system name for prompt data.
This section configures the Jaeger server settings.
serverName: The server domain or IP address of the Jaeger server.tlsEnabled: A boolean indicating whether TLS is enabled.grpcPort: The gRPC port the Jaeger server listens.uiPort: The UI port for Jaeger.
This section contains trace-agent-specific settings.
traceWorkerNum: The number of trace workers (threads).traceDelayInMillis: The time (in milliseconds) agent will wait to collect all spans of a trace before sending them to InsightFinder.tls: Configuration for trace agent TLS settings.enabled: A boolean indicating whether TLS is enabled.certificateFile: Path to the full-chain certificate file (PEM).privateKeyFile: Path to the private key file.
This section configures data attribute mappings. All the field paths are expected to be in the
tags. If multiple paths are provided, the first one that has value will be used.
attrMapping.prompt_response.fieldPaths: JSON fields to extract prompt response.attrMapping.prompt_token.fieldPaths: JSON fields to extract prompt token. The value should be either String or Integer.attrMapping.response_token.fieldPaths: JSON fields to extract response token. The value should be either String or Integer.attrMapping.error.fieldPaths: JSON fields to extract error messages. The value should be either Boolean, JSONObject or JSONArray.attrMapping.promptExtraction: JSON fields to extract prompt extraction.attrMapping.promptExtraction.processPath: JSON field to find process name.attrMapping.promptExtraction.processName: The process name to extract prompt.attrMapping.promptExtraction.promptConfig.input_prompt.fieldPath: JSON field to extract input prompt.attrMapping.promptExtraction.promptConfig.input_prompt.valuePath: JSON field to extract input prompt value if the value of fieldPath is a Json.attrMapping.promptExtraction.promptConfig.output_prompt.fieldPath: JSON field to extract output prompt.attrMapping.promptExtraction.promptConfig.output_prompt.valuePath: JSON field to extract output prompt value if the value of fieldPath is a Json.