icon/x Created with Sketch.

Splunk Cookie Policy

We use our own and third-party cookies to provide you with a great online experience. We also use these cookies to improve our products and services, support our marketing campaigns, and advertise to you on our website and other websites. Some cookies may continue to collect information after you have left our website. Learn more (including how to update your settings) here.
Accept Cookie Policy

We are working on something new...

A Fresh New Splunkbase
We are designing a New Splunkbase to improve search and discoverability of apps. Check out our new and improved features like Categories and Collections. New Splunkbase is currently in preview mode, as it is under active development. We welcome you to navigate New Splunkbase and give us feedback.

Accept License Agreements

Thank You

Downloading Splunk App for Corda
SHA256 checksum (splunk-app-for-corda_030.tgz) f1e3ab2de10d76cd4f7eda4ec6be30579c933ce782c002c0130e21d1e6f98f6b
To install your download
For instructions specific to your download, click the Details tab after closing this window.

Flag As Inappropriate

splunk

Splunk App for Corda

Splunk Cloud
Splunk Built
Overview
Details
Splunk App for Corda gives you insight into your blockchain infrastructures built on Corda. With the new Splunk App for Corda, you will get the building blocks to obtain visibility and monitoring of Corda node application logs, metrics, and traces, in addition to transaction data from the distributed ledger itself!

If you want to learn more about Splunk's efforts to support R3 Corda, raise an issue here or email us at blockchain AT splunk.com.

Usage

Splunk App for Corda relies on having direct access to the environment where your Corda nodes are running. As such, you'll need to modify the start up command for your Corda nodes. The startup command is illustrated here. Take note of the new dependencies you'll have, mentioned above. You can find an example of how to obtain and install them here.

In addition to the two java agents, make sure you install the following on your corda node host:
- collectd
- Splunk Universal Forwarder

Refer to the example node dockerfile for how to accomplish the above, or if you already have Splunk App for Infrastructure installed on your Splunk instance, follow the instructions in the App to add more data sources.

Corda Logging Spec (IMPORTANT!)

Splunk App for Corda relies on the Corda node logging in JSON. One of the most important updates you'll need to make to your Corda node startup is to specify a new logging configuration for Log4j2. You can see the full command here. Specifically, you'll find the logging config here, and will specify it like this:

java -Dlog4j.configurationFile=logging.xml -jar corda.jar

Logging arbitrary data

We have implemented a pattern for logging arbitrary data that is illustrated in the CorDapp used in the Docker example. This involves using ThreadContext to put additional strings into your logging context.

You'll need to:
- include log4j2 core in your project.
- import ThreadContext in your workflow.
- put values into your logger ThreadContext.
- remove values from ThreadContext when done.

Splunk considerations

Specify your Splunk host in the following locations:
- On your node host, in the Universal Forwarder outputs.conf
- In the Otel Collector config, here and here.

Specify your Splunk HEC token in the following locations:
- In the Otel Collector config, here and here.

On your Splunk instance

You'll need to add 3 indexes to your Splunk installation.
- name: corda, type: event
- name: traces, type: event
- name: metrics, type: metric

Take note that you'll need to install our Splunk Apps and Add-ons to make sense of all of the new data being sent to your instance.
- Splunk App for Infrastructure
- Splunk Add-on for Infrastructure
- Splunk App for Corda

Architecture / Getting Data In

Corda GDI architecture

If you're installing manually in your environment, please consider GDI architecture outline below.

Splunk Configuration

  • props.conf
  • You'll need to add an entry in /opt/splunk/etc/system/local/props.conf to tell splunk where to find the timestamp in the Corda JSON logs.
  • Relevant files: props.conf

Corda Environment

  • Corda Log4j2 JSON config
    • Splunk App for Corda relies on the Corda node logging in the JSON format. You will need to specify a log4j2 config to the corda node at runtime.
    • Relevant files: logging.xml, start_node.sh
  • OpenTelemetry JavaAgent
    • The OpenTelemetry JavaAgent (otel-agent.jar) exposes full-fidelity trace data from Corda (operation, timespan). Examples of this include database performance traces and custom traces in CorDapps. The Otel Agent relies on environment variables for configuration and connection info for the Otel Colletor that should be supplied at runtime.
    • Relevant files: fetch_javaagents.sh, start_node.sh (note the OTEL_* environment variables)
  • Prometheus JMX JavaAgent
    • The Prometheus JMX JavaAgent (prometheus-jmx-agent.jar) exposes the JMX metrics from Corda in Prometheus format. The Prometheus JMX JavaAgent relies on a local yaml file for configuration that should be available at runtime. This is mainly formatting rules.
    • Relevant files: fetch_javaagents.sh, jmx_prometheus_config.yaml, start_node.sh

Additional Services

  • Splunk Universal Forwarder
  • OpenTelemetry Collector

Examples

We've provided a fully functioning example of everything outlined above, and you can learn more in the Docker example's README.

Release Notes

Version 0.3.0
Sept. 14, 2021
1
Install
18
Downloads
Share Subscribe LOGIN TO DOWNLOAD

Subscribe Share

Are you a developer?

As a Splunkbase app developer, you will have access to all Splunk development resources and receive a 10GB license to build an app that will help solve use cases for customers all over the world. Splunkbase has 1000+ apps from Splunk, our partners and our community. Find an app for most any data source and user need, or simply create your own with help from our developer portal.

Follow Us:
Splunk, Splunk>,Turn Data Into Doing, Data-to-Everything, and D2E are trademarks or registered trademarks of Splunk Inc. in the United States and other countries. All other brand names,product names,or trademarks belong to their respective owners.