ldms_msg_publish

Man page for the LDMS ldms_msg_publish executable utility

Date:

29 Oct 2025

Manual section:

8

Manual group:

LDMSD

SYNOPSIS

At the command line: ldms_msg_publish [args]

DESCRIPTION

The ldms_msg_publish executable publishes to the ldms_msgs interface of a running ldms daemon. The hello_publisher takes a file as input and publishes it either in bulk or line by line. It reuses the connection for all the messages by default.

COMMAND LINE SYNTAX

ldms_msg_publish -x <xprt> -h <host> -p <port> -m <message_tag> -a <auth> -A <auth-opt> -t <data-format> [-v] [-f <file> [-l] [-r <N> [-i <M>] [-R]]]

-x|–xprt <xprt>

transport of the ldms to which to connect.
-p|–port <port>

port of the ldmsd to which to connect.
-a|–auth <auth>

auth to connect to the ldmsd
-A|–auth_opt <auth-opt>

auth-opts to connect to the ldmsd
-m||–msg_tag <message tag>

The message tag to include when publishing messages.
-t|–type <data-format>

Optional data-format. Either ‘string’ or ‘json’. Default is string. This publisher program does not validate input before sending it, even if -t json is given.
-l|–line

Optional line mode. Publishes file one line at a time as separate publish calls. In line mode, a delay of -D <nanoseconds> is slept between lines. If a line does not contain a complete message, the recipients will see what is sent as erroneous when the type given is ‘json’.
-f|–file <file>

File that is published. If not specified, input is copied from STDIN, and each line is expected to be a well-formed payload. If -f is specified, options -l, -r, and -R are applied.
-r|–repeat <N>

Repeat the publication of the file N times, with a delay interval specifed by -i. Repeating is not supported unless the input is a file. If the -l option is given, the lines are replayed to individual ldms_msg_publish calls.
-i|–interval <M>

When -i is specified, sleep an interval of M microseconds between file publication iterations. The default is 10000000 (10 seconds). Use -D to delay between lines within a file.
-g|–giveup <secs>

When -g is specified, a limit of <secs> seconds is set for QUOTA updates from the peer. If this limit is exceeded, the application will exit.
-D|–delay <nanoseconds>

The amount of time to sleep between ldms_msg_publish calls when in line mode (-l). Must be in range [0, 999999999]. Default 0.
-R|–reconnect

If -R and -f are both given, the ldms connection is closed and reopened between repeated transmissions of the file. Unlike ldmsd_stream_publish, this option is independent of the -l option.
-W|–retry <W>

If specified, W is the period in milliseconds to wait between connection attempts. 0 means do not retry when a connection fails. (Default is 0). When used, retry is infinite except in the case of detectable authentication failure.
-v|–verbose

Optional verbose mode. Tracks progress, and possibly other things.

NOTES

This executable is in development and may change at any time.

This supports testing: - publishing data once to a single connection from a pipe or file. - repeating a file to a single connection. - repeating a file to a new connection at each iteration. - sending data line-by-line from a file or pipe as separate messages, up to

a maximum line length which is user specified.

When the input is a pipe and -l is not specified, the entire content of the pipe is buffered before anything is sent.

EXAMPLES

Within ldmsd_controller or a configuration file:

load name=hello_sampler
config name=hello_sampler producer=host1 instance=host1/hello_sampler message_tag=foo component_id=1
start name=hello_sampler interval=1000000 offset=0
> cat testdata.10.out
{ "seq": 0, "job-id" : 10364, "rank" : 1, "kokkos-perf-data" : [ {"name" : "SPARTAFOO0", "count": 0, "time": 0.0000},{"name" : "SPARTAFOO1", "count": 1, "time": 0.0001},{"name" : "SPARTAFOO2", "count": 2, "time": 0.0002},{"name" : "SPARTAFOO3", "count": 3, "time": 0.0003},{"name" : "SPARTAFOO4", "count": 4, "time": 0.0004},{"name" : "SPARTAFOO5", "count": 5, "time": 0.0005},{"name" : "SPARTAFOO6", "count": 6, "time": 0.0006},{"name" : "SPARTAFOO7", "count": 7, "time": 0.0007},{"name" : "SPARTAFOO8", "count": 8, "time": 0.0008},{"name" : "SPARTAFOO9", "count": 9, "time": 0.0009}] }
> ldms_msg_publish -x sock -h localhost -p 52001 -m foo -t json -f ./testdata.10.out -a none


In the log file of the ldmsd:
> cat log.txt
Sat Aug 21 18:15:27 2021: CRITICAL  : stream_type: JSON, msg: "{ "seq": 0, "job-id" : 10364, "rank" : 1, "kokkos-perf-data" : [ {"name" : "SPARTAFOO0", "count": 0, "time": 0.0000},{"name" : "SPARTAFOO1", "count": 1, "time": 0.0001},{"name" : "SPARTAFOO2", "count": 2, "time": 0.0002},{"name" : "SPARTAFOO3", "count": 3, "time": 0.0003},{"name" : "SPARTAFOO4", "count": 4, "time": 0.0004},{"name" : "SPARTAFOO5", "count": 5, "time": 0.0005},{"name" : "SPARTAFOO6", "count": 6, "time": 0.0006},{"name" : "SPARTAFOO7", "count": 7, "time": 0.0007},{"name" : "SPARTAFOO8", "count": 8, "time": 0.0008},{"name" : "SPARTAFOO9", "count": 9, "time": 0.0009},{"name" : "SPARTAFOO10", "count": 10, "time": 0.00010}] }", msg_len: 589, entity: 0x2aaab8004680

Note that the hello_streams sampler does not do a sample, instead it subscribes to the stream with a callback and prints out what it got off the stream.

SEE ALSO

ldmsd(8), ldms_quickstart(7), ldmsd_controller(8), ldms_sampler_base(7), hello_sampler(7), stream_csv_store(7), blob_msg_writer(7)