Skip to content

signalfx/signalflow-client-java

Folders and files

NameName
Last commit message
Last commit date
Jun 13, 2024
May 29, 2024
Aug 7, 2024
Mar 3, 2025
Aug 7, 2024
May 29, 2024
May 29, 2024
Jul 22, 2024
May 29, 2024
May 29, 2024
May 29, 2024
Jul 10, 2024
May 29, 2024
Jun 13, 2024

Repository files navigation

SignalFlow Java Client

This is a client for SignalFlow, which enables you to stream and analyze your organization's metric data in real time.

Run SignalFlow computations

SignalFlow is the SignalFx real-time analytics computation language. The SignalFlow API allows SignalFx users to execute real-time streaming analytics computations on the SignalFx platform. For more information, see the Splunk Observability Cloud developer documentation:

The following example demonstrates how to run a SignalFlow program using the Java client library:

String program = "data('cpu.utilization').mean().publish()";
SignalFlowClient flow = new SignalFlowClient("<token>");
System.out.println("Running " + program);
Computation computation = flow.execute(program);
for (ChannelMessage message : computation) {
    switch (message.getType()) {
    case DATA_MESSAGE:
        DataMessage dataMessage = (DataMessage) message;
        System.out.printf("%d: %s%n",
                dataMessage.getLogicalTimestampMs(), dataMessage.getData());
        break;

    case EVENT_MESSAGE:
        EventMessage eventMessage = (EventMessage) message;
        System.out.printf("%d: %s%n",
                eventMessage.getTimestampMs(),
                eventMessage.getProperties());
        break;
    }
}

If you need to receive timeseries metadata, you can use the Java client library to provide access to this information using the Computation object returned by the execute() method. To receive timeseries metadata, change the DATA_MESSAGE case to the following:

case DATA_MESSAGE:
    DataMessage dataMessage = (DataMessage) message;
    for (Map<String, Number> datum : dataMessage.getData()) {
        Map<String,Object> metadata = computation.getMetadata(datum.getKey());
        // ...
    }