SYSTEMD-REPORT(1)
π systemd-report β the metrics gossip girl π
okay bestie, so systemd-report is a thing in the systemd family (that's systemd(1), the manual you already know and love) and it does exactly what the name says: it goes out, asks the system for metrics, and writes them to standard output. like a little reporter with a notepad. slay.
β¨ SYNOPSIS β¨
systemd-report [OPTIONS...]
π§ͺ EXPERIMENTAL π§ͺ
β οΈ bestie. listen. this component is experimental and it can change without advance notice. it's gonna get stabilized and get a backward-compatibility guarantee in a future release, but it might also justβ¦ get removed?? π no promises. so like, don't build your whole personality on it yet.
πΈ DESCRIPTION πΈ
systemd-report requests metrics from the system and writes them to standard output. that's the whole vibe. it's giving very focused. π
π COMMANDS π
these are the commands it understands, fr fr:
metrics [MATCH...]β goes and acquires a whole list of metrics values from every local service that's providing them, and writes them to standard output. optionally takes one or more match expressions to filter which metrics show up. an expression is either a literal metric family name to search for, or a prefix of one β and that prefix only matches at dot boundaries, no sneaky mid-word matches. if you pass several matches as separate parameters, anything matching any of them gets shown.
Added in version 260.
describe [MATCH...]β acquires a list of metric families from every local service providing them, and writes them to standard output. this one is mostly the static info: what the metrics are, their data types, and a human readable description. no values, just lore. π
the match expressions that metrics supports? describe supports them too.
Added in version 260.
generate [MATCH...]β acquires a list of metrics and builds a JSON report out of them. β¨
match expressions supported by metrics work here too.
Added in version 261.
upload [MATCH...]β this one takes the report thatgeneratebuilt and sends it off to an external server. there are two upload mechanisms, pick your fighter:- if you specify an
"http://"or"https://"URL with--url=, it does an HTTP upload to that location. - otherwise, any sockets hanging out under
/run/systemd/report.upload/get used to callio.systemd.Report.Uploader.Upload().
- if you specify an
match expressions supported by metrics work here too.
Added in version 261.
list-sourcesβ shows you the list of known metrics sources. that's it. that's the command. π«Ά
Added in version 260.
π OPTIONS π
here's everything it understands, one by one, no skipping:
--system,--userβ query per-system metrics sources (that's the default, bestie) or the per-user metrics sources.
Added in version 260.
--no-pagerβ do not pipe the output into a pager. raw output, straight to your terminal, no middleman.--json=MODEβ shows output formatted as JSON. it expects one of:"short"β the shortest possible output, no redundant whitespace, no line breaks."pretty"β the pretty version of the same thing, with indentation and line breaks. π"off"β turns JSON output off. this is the default.
-jβ equivalent to--json=prettyif you're running on a terminal, and--json=shortotherwise. it reads the room. β¨--no-legendβ do not print the legend, meaning the column headers and that footer with the hints. no context, just data.-h,--helpβ print a short help text and exit. classic.--versionβ print a short version string and exit. also classic.--url=URLβ upload the collected report to the specified address instead of writing it to standard output. URL must point to a server that accepts POST requests with a JSON-formatted report body.
note: both"http://"and"https://"URLs are supported, but connections over plain HTTP are made without encryption. so this mode should only be used in specific situations where integrity and confidentiality of the report isn't required, or is ensured through some other means. using"https://"is recommended. π
Added in version 261.
--key=FILENAMEβ takes a path to a SSL key file in PEM format, used for client certificate authentication when uploading. can also be set to"-"to disable client certificate authentication. defaults to/etc/ssl/private/systemd-report.pem.
Added in version 261.
--cert=FILENAMEβ takes a path to a SSL certificate file in PEM format, used for client certificate authentication when uploading. defaults to/etc/ssl/certs/systemd-report.pem.
Added in version 261.
--trust=FILENAME|allβ takes a path to a SSL CA certificate file in PEM format used to verify the server certificate, or the literal stringallto disable certificate checking entirely. defaults to/etc/ssl/ca/trusted.pem.
β οΈ yes, all means no certificate checking at all. iykyk. be careful bestie.
Added in version 261.
--network-timeout=SECβ timeout for the network upload operation. takes a value in seconds (or in other time units if you suffix it with"ms","min","h", etc.); seesystemd.time(7)for the details. defaults to30seconds.
Added in version 261.
--extra-header=NAME: VALUEβ inject an additional HTTP header into the upload request. can be specified multiple times to add several headers. passing an empty string clears any headers added by previous--extra-header=uses. π§
Added in version 261.
--sign=MODEβ controls whether and how the report generated bygenerateor uploaded byuploadis cryptographically signed. signatures are acquired by callingio.systemd.Report.Signer.Sign()on each socket found under/run/systemd/report.sign/.
when signing is requested (any value other than no) the report is emitted as a JSON-SEQ stream: the report object comes first, followed by one signature object per acquired signature (possibly none, in best-effort mode), each covering the precise binary representation of the report object. with no the report is emitted as a single plain JSON object. takes one of these values:
noβ do not sign the report; it is emitted as a single plain JSON object. this is the default.
Added in version 262.
best-effortβ never fail because of signing. any acquired signatures get included. the operation succeeds even if none could be acquired, in which case the JSON-SEQ stream simply contains no signature objects.
Added in version 262.
require-oneβ require at least one signature. individual signers that fail or return no signature are tolerated, but the operation fails if not a single signature could be acquired.
Added in version 262.
require-allβ require every signer to succeed with at least one signature. the operation fails if no signer is present, if any signer returns an error, or if any signer returns no signature. all or nothing, periodt. π
Added in version 262.
defaults to no.
Added in version 262.
π¦ EXIT STATUS π¦
on success, 0 is returned. a non-zero failure code otherwise. that's it. zero means we ate, non-zero means we did not. π
π SEE ALSO π
okay that's the whole page, bestie, go forth and report some metrics π¦
this was systemd 262.1, dated SYSTEMD-REPORT(1) β mwah, love u, bye πβ¨
π¦ where this page comes from
- arch rolling: systemd 262.1-1 Β· LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later AND MIT-0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms