Lightrun CLI Commands¶
This reference describe the Lightrun CLI commands, options, and parameters.
Prerequisites¶
This tutorial assumes that you have:
- Created your Lightrun account.
- Installed the Lightrun CLI on your local machine.
- Authenticated the Lightrun CLI
Synopsis¶
java -jar lightrunc.jar <command> <options>
Add the -v
command when running any command to enable the verbose mode. For exammple,
java -jar lightrunc.jar <command> <options> -v
Use java -jar lightrunc.jar help
to view a list of all available commands and options in your terminal.
Example
$ java -jar lightrunc.jar help
Usage: LightrunC [OPTIONS]
Command line interface to Lightrun
list-agents List the agents
list-tags List the tags
list-agents-by-tag <Tag> List the agents by given tag
list-actions <AgentId> List the actions for the given agent id
log <AgentId> <Filename>:<LineNumber> <Format> [-ignoreQuota] [-pipe
enable/disable/client]
Insert a log to the given agent at the given
file/line with the format (text of the log)
clog <AgentId> <Filename>:<LineNumber> <Format> [-condition <Condition>]
[-expireSec <ExpireSec>] [-ignoreQuota] [-pipe enable/disable/client]
Insert a conditional log to the given agent
at the given file/line with the format
(text of the log)
snapshot <AgentId> <Filename>:<LineNumber> [-condition <Condition>]
[-watch <Expression>] [-expireSec <ExpireSec>] [-maxHitCount
<MaxHitCount>] [-ignoreQuota] [-pipe enable/disable/client]
Insert a snapshot to the given agent at the
given file/line
counter <AgentId> <FileName>:<LineNumber> <CounterName> [-condition
<Condition>] [-expireSec <ExpireSec>] [-aggregateBy <Aggregate By
Prefix>] [ignoreQuota] [-pipe enable/disable/client]
Count the number of times each thread hits
the requested line.
This option is currently supported only for
Java agents.
customMetric <AgentId> <FileName>:<LineNumber> <MetricName>
<MetricExpression> [-condition <Condition>] [-expireSec <ExpireSec>]
[-ignoreQuota] [-pipe enable/disable/client]
Get metrics for the value given by the
expression.
This option is currently supported only for
Java agents.
set-value <AgentId> <FileName>:<LineNumber> <VarName1=VarValue>
[<VarName2=VarValue>...] [-condition <Condition>] [-expireSec
<ExpireSec>] [-ignoreQuota]
Set the values of the given variables in a
certain line.
This option is currently supported only for
Java agents.
snapshot-data <AgentId> <SnapshotId> [<output-file>]
Prints the accumulated data for a snapshot or
saves it to <output-file>
rm <AgentId> <ActionId> Removes an action from the given agent
rm-tag <tagName> Removes a tag from the server
status Prints the current status of the backend
detach <on|off> Disconnects all agents and disables lightrun
instantly (when on) until it's turned off
again
print-logs <AgentId> [<ActionId>] [-range <StartTimestamp-EndTimestamp
(milliseconds)>]
Print all logs for the given agent. Limited
to 1000 most recent results. Optionally,
you can specify the range via the 'range'
argument
print-all-logs Print all logs for all agents. Limited to
1000 most recent results. Optionally, you
can specify the range via the 'range'
argument
enable-piping <AgentId> Logs/Counters/TicTocs for this agent id will
be piped to Lightrun's backend and printed
on the server! Logs are available with the
print-logs command.
client-piping <AgentId> Logs/Counters/TicTocs for this agent id will
be piped to Lightrun's backend and hidden
in the server! Logs are available with the
print-logs command
disable-piping <AgentId> Logs/Counters/TicTocs for this agent id will
only be printed on the server! (this
doesn't stop the action)
server-url <ServerURL> Sets the server URL for the command line
login Log in the server. The login will supply a
URL for further authentication. Optionally,
you can specify the user name and password
via the 'email' and 'password' arguments.
logout Logs out the currently logged in user on this
machine
version Prints the version of Lightrun CLI and the
backend server
listen Listens to agent/log registration events and
prints them out
-v, verbose Verbose mode
user Prints the details on the server for the
currently logged in user
help Print help details
toggle-action [AgentId] <ActionId>
Enable/Disable an action
add-certificate <Certificate>
Add a server certificate
show-certificates Show all the server certificates
rm-certificate <Certificate>
Remove a server certificate
enable-pinning-status Enable certificate pinning
disable-pinning-status Disable certificate pinning
get-pinning-status Get certificate pinning
clear-exceptions Clear all exceptions from history by Admin /
Manager
ignoreQuota, -ignoreQuota Add this argument when submitting a new
action in order to disable the quota limits
on that action. This operation can
seriously impact your performance and is
only available for users with the ignore
quota permission
-pipe enable/disable/client Set Piping for action.
enable - enables piping in the backend.
disable - Stops tracking action in the
backend/client
client - Action will be piped to the backend
and hidden in the server
listen
¶
The listen
command prints out events (agent/actions events) from the server as they occur.
Synopsis¶
java -jar lightrunc.jar listen
Example¶
Note
Use Ctrl+C to exit listen mode.
Example
run java -jar lightrunc.jar listen
$ java -jar lightrunc.jar listen
Connecting to server
Listening for events
{"eventType":"CONNECTED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"eventType":"SESSION_DETAILS","metadata":{"sessionId":"ecf32a4b-43da-ea93-bce0-18ef235e962a"},"status":{"status":"OK","statusCode":"STATUS_OK"}}
{"agentDisplayName":"","eventType":"AUTHENTICATED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"actionType":"LOG","agentDisplayName":"erezk-Latitude-7400 (pid 30554)","agentId":"f4b0d260-ec00-4459-a9ed-b8ef7d4ffcf7","eventType":"LOG_DATA_ADDED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"actionType":"LOG","agentDisplayName":"erezk-Latitude-7400 (pid 30554)","agentId":"f4b0d260-ec00-4459-a9ed-b8ef7d4ffcf7","eventType":"LOG_DATA_ADDED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"actionType":"LOG","agentDisplayName":"erezk-Latitude-7400 (pid 30554)","agentId":"f4b0d260-ec00-4459-a9ed-b8ef7d4ffcf7","eventType":"LOG_DATA_ADDED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"actionType":"LOG","agentDisplayName":"erezk-Latitude-7400 (pid 30554)","agentId":"f4b0d260-ec00-4459-a9ed-b8ef7d4ffcf7","eventType":"LOG_DATA_ADDED","status":{"status":"OK","statusCode":"STATUS_OK"}}
{"actionType":"LOG","agentDisplayName":"erezk-Latitude-7400 (pid 30554)","agentId":"f4b0d260-ec00-4459-a9ed-b8ef7d4ffcf7","eventType":"LOG_DATA_ADDED","status":{"status":"OK","statusCode":"STATUS_OK"}}
version
¶
The version
command outputs information about your current CLI version and Lightrun server version.
Synopsis¶
java -jar lightrunc.jar version
Example¶
Example
run java -jar lightrunc.jar version
$ java -jar lightrunc.jar version
CLI Client Version: 1.4
Server Version: 1.6
user
¶
The user
command outputs all relevant information about the current logged-in user.
Synopsis¶
java -jar lightrunc.jar user
Example¶
Example
run java -jar lightrunc.jar user
$ java -jar lightrunc.jar user
class UserDTO {
activated: true
authorities: <permissions>
company: class CompanyDTO {
agentAPIKey: <agent-api-key>
agentsEnabled: true
certificatePinningEnabled: false
displayName: null
dontStorePluginToken: false
id: <id>
inviteKey: <invite-key>
licenseExpiry: <liscense-expiry>
licensedAgents: 1000
licensedUsers: 1000
managerId: null
managerLogin: null
name: <name>
subscriptionStatus: STANDARD
uniquifier: <uniquifier>
users: []
}
companyName: <company-name>
createdBy: <accout-created-by>
createdDate: <created-date>
email: <email>
firstName: <first-name>
id: <id>
imageUrl: null
langKey: en
lastModifiedBy: <account-last-modified-by>
lastModifiedDate: <last-modified-date>
lastName: <last-name>
password: null
passwordHash: null
passwordSet: false
registerMethod: <register-method>
subscriptionStatus: <subscription-status>
}
status
¶
The status
command outputs the current status of the Lightrun Management server, including licensing information about the agent and other relevant details.
Synopsis¶
java -jar lightrunc.jar status
Example¶
Example
run java -jar lightrunc.jar status
$ java -jar lightrunc.jar status
Lightrun CLI Client
----------
Server URL: https://app.lightrun.com
Company Name: <company-name
Version: 1.4
Backend Version: 1.6
User: <user-email>
Licenced Agents: 1000
Licence Expiry: <liscence-expiry>
Exception Daily Limit: Not Reached
detach
¶
When experiencing any issues on the server, you might want to disable Lightrun in order to rule it out when troubleshooting.
The detach
command allows you to disable all Lightrun agents on the specified server and re-enable the agents at will.
Synopsis¶
java -jar lightrunc.jar detach on/off
Options¶
Option | Description |
---|---|
on | Disable all Lightrun agents on your server. |
off | Enable detached agents. |
Examples¶
Example
run java -jar lightrunc.jar detach on
to disable all Lightrun agents
$ java -jar lightrunc.jar detach on
Agents are now detached
run java -jar lightrunc.jar detach off
to enable all Lightrun agents
$ java -jar lightrunc.jar detach off
Agents are now re-enabled
logout
¶
The logout
logs out the currently logged in user from the Lightrun CLI.
Synopsis¶
java -jar lightrunc.jar logout
Example¶
Example
run java -jar lightrunc.jar logout
Logged out successfully!
agents
, tags
, and custom sources
¶
list-agents
¶
The list-agents
command outputs all agents and their associated actions.
Synopsis¶
java -jar lightrunc.jar list-agents
Example¶
Example
run java -jar lightrunc.jar list-agents
$ java -jar lightrunc.jar list-agents
0 : ID e93fccd1-9f76-46ae-b703-056e25b8092e HOST ip-172-31-50-47 PID 14507 UPDATE 1/21/21, 9:16 AM
ACTION 4261257f-fbc0-4fc5-8fe7-e8dbf3944eb7 FILE PrimeMainMR.java LINE 10 TYPE TICTOC
ACTION 99e8e7b0-9248-4d89-8f6f-2d3c5fa9aebc FILE PrimeMainMR.java LINE 15 TYPE LOG Hello world {java expression}gg
ACTION b383e31b-8749-419f-a492-85a919cc0da8 FILE PrimeMainMR.java LINE 22 TYPE TICTOC
ACTION c3f863e6-ba7d-4480-83c0-ef4a278ecddb FILE PrimeMainMR.java LINE 15 TYPE COUNTER
ACTION e5790c99-f763-4d26-8d3f-2714c89c0fad FILE PrimeMainMR.java LINE 10 TYPE BREAKPOINT
1 : ID f93fccd1-9f75-46ae-b703-456e25b8092e HOST ip-172-31-50-47 PID 14508 UPDATE 1/21/21, 9:16 AM
ACTION 5261257f-fbc0-4fc5-8fe7-e8dbf3944eb7 FILE PrimeMainMR.java LINE 10 TYPE TICTOC
ACTION 49e8e7b0-9248-4d89-8f6f-2d3c5fa9aebc FILE PrimeMainMR.java LINE 15 TYPE LOG Hello world {java expression}gg
ACTION g383e31b-8749-419f-a492-85a919cc0da8 FILE PrimeMainMR.java LINE 22 TYPE TICTOC
ACTION a3f863e6-ba7d-4480-83c0-ef4a278ecddb FILE PrimeMainMR.java LINE 15 TYPE BREAKPOINT
ACTION l5790c99-f763-4d26-8d3f-2714c89c0fad FILE PrimeMainMR.java LINE 10 TYPE BREAKPOINT
list-agents-by-tag
¶
The list-agents-by-tag
command outputs all agents and actions related to the specified tag.
Synopsis¶
java -jar lightrunc.jar list-agents-by-tag Production
Options¶
Option | Description |
---|---|
Tag | The name of the relevant tag. For example, Production. |
Example¶
Example
run java -jar lightrunc.jar list-agents-by-tag Production
to list all agents associated to the Production tag.
$ java -jar lightrunc.jar list-agents-by-tag Production
0 : ID <user-id> HOST <host> PID 10 UPDATE 7/26/22, 8:08 PM TAGS [Production]
downloads % java -jar lightrunc.jar list-agents-by-tag Production
0 : ID <user-id> HOST <host> PID 10 UPDATE 7/26/22, 8:13 PM TAGS [Production]
ACTION 1ecff847-db90-46f8-9493-bdac3518809b FILE PrimeMainMR.java LINE 30 TYPE LOG Hello world {expression}
ACTION 275cae4c-ece9-4f6c-8950-594cd3ccc7fd FILE PrimeMainMR.java LINE 59 TYPE COUNTER
ACTION 5eaeeca1-4861-473b-8d55-b39b29af26ad FILE PrimeMainMR.java LINE 20 TYPE TICTOC ERROR Collision in breakpoint location on the same tree
ACTION 758a36b8-50be-472c-8a6e-891eb3d31747 FILE PrimeMainMR.java LINE 78 TYPE BREAKPOINT
ACTION a214a929-6bc8-44ff-92f1-5c0140084038 FILE PrimeMainMR.java LINE 33 TYPE LOG Hello world {expression}
list-tags
¶
The list-tags
command lists all tags and their actions.
Synopsis¶
java -jar lightrunc.jar list-tags
Example¶
Example
run java -jar lightrunc.jar list-tags
$ java -jar lightrunc.jar list-tags
Tag: Production
ACTION 4f6f8e67-2252-4093-bcf2-9a5254f074ef FILE PrimeMainMR.java LINE 50 TYPE LOG Hello world {java expression}
ACTION 99e8e7b0-9248-4d89-8f6f-2d3c5fa9aebc FILE PrimeMainMR.java LINE 15 TYPE LOG Hello world {java expression}gg
ACTION e5790c99-f763-4d26-8d3f-2714c89c0fad FILE PrimeMainMR.java LINE 10 TYPE BREAKPOINT
Tag: Staging
ACTION b383e31b-8749-419f-a492-85a919cc0da8 FILE PrimeMainMR.java LINE 22 TYPE TICTOC
ACTION c3f863e6-ba7d-4480-83c0-ef4a278ecddb FILE PrimeMainMR.java LINE 15 TYPE COUNTER
list-custom-sources
¶
The list-custom-sources
command outputs all available custom sources.
Synopsis¶
java -jar lightrunc.jar list-custom-sources
Example¶
Example
run java -jar lightrunc.jar list-custom-sources
$ java -jar lightrunc.jar list-custom-sources
Custom Source: Production (86ba64eb-89a7-445d-a3f3-e273645594b6)
list-agents-by-custom-source-name
¶
The list-agents-by-custom-source-name
command lists all agents associated with a custom source.
Synopsis¶
java -jar lightrunc.jar list-agents-by-custom-source-name <CustomSource>
Options¶
Option | Description |
---|---|
Custom Source | Custom source name. |
Examples¶
Example
run java -jar lightrunc.jar list-agents-by-custom-source-name <CustomSource>
$ java -jar lightrunc.jar list-agents-by-custom-source-name Staging
0 : ID a7324611-3ab0-4ea1-8cad-bbc9fcfe3e4a HOST 6f4d43f85e53 PID 14 UPDATE 2/1/23, 7:37 AM TAGS [Production]
list-actions
¶
The list-actions
command lists all actions associated with a specified agent or tag.
Synopsis¶
java -jar lightrunc.jar list-actions <AgentId>
Options¶
Option | Description |
---|---|
Agent-ID | Enter the ID of the relevant agent. |
Tag | Enter the relevant tag instead of an agent ID. |
Examples¶
Example
run java -jar lightrunc.jar list-actions <AgentId>
to list all actions associated with the specified agent.
$ java -jar lightrunc.jar list-actions 7b5a1f54216b
There are no actions to agent 7b5a1f54216b
run java -jar lightrunc.jar list-actions tag:<tagName>
to list all actions associated with the specified tag.
$ java -jar lightrunc.jar list-actions tag:Production
There are no actions to agent tag:Production
client-piping
¶
The client-piping
command pipes Log, Metrics, Counters, and Tic Toc data to the Lightrun Console, Management Portal, and any other configured logging tool.
Synopsis¶
java -jar lightrunc.jar client-piping <Agent-ID>
Options¶
Option | Description |
---|---|
Agent-ID | Enter the ID of the relevant agent. |
Example¶
Example
run java -jar lightrunc.jar client-piping <Agent-ID>
$ java -jar lightrunc.jar client-piping da0c440b-ae8e-4011-9f61-93a07405baa2
Log tracking in progress, use print-logs to view the output
enable-piping
¶
The enable-piping
command pipes Log, Metrics, Counters, and Tic Toc data to the Lightrun Console, Management Portal, and any other configured logging tool.
Synopsis¶
java -jar lightrunc.jar enable-piping <Agent-ID>
Options¶
Option | Description |
---|---|
Agent-ID | Enter the ID of the relevant agent. |
Example¶
Example
run java -jar lightrunc.jar enable-piping <Agent-ID>
$ java -jar lightrunc.jar enable-piping da0c440b-ae8e-4011-9f61-93a07405baa2
Log tracking in progress, use print-logs to view the output
disable-piping
¶
The disable-piping
command disables all output piping for the specified agent.
Synopsis¶
java -jar lightrunc.jar disable-piping <Agent-ID>
Options¶
Option | Description |
---|---|
Agent-ID | Enter the ID of the relevant agent. |
Example¶
Example
run java -jar lightrunc.jar disable-piping <Agent-ID>
$ java -jar lightrunc.jar disable-piping da0c440b-ae8e-4011-9f61-93a07405baa2
Log tracking is disabled
actions
¶
toggle-action
¶
The toggle-action
command enables or disables an action.
Synopsis¶
java -jar lightrunc.jar toggle-action <Agent-ID> <ActionId>
Options¶
Option | Description |
---|---|
Agent-ID | Enter the ID of the relevant agent. |
Action-ID | Enter the ID of the relevant action. |
Examples¶
Example
run java -jar lightrunc.jar toggle-action <Agent-ID> <ActionId>
on an active action to disable the action.
$ java -jar lightrunc.jar toggle-action da0c440b-ae8e-4011-9f61-93a07405baa2 b5f20e04-5ab1-4c14-887b-1386ee96ce1b
Action b5f20e04-5ab1-4c14-887b-1386ee96ce1b was successfully disabled
run java -jar lightrunc.jar toggle-action <Agent-ID> <ActionId>
on a disabled action to enable the action.
$ java -jar lightrunc.jar toggle-action da0c440b-ae8e-4011-9f61-93a07405baa2 b5f20e04-5ab1-4c14-887b-1386ee96ce1b
Action b5f20e04-5ab1-4c14-887b-1386ee96ce1b was successfully enabled
logs
¶
The logs
command inserts a log to the given agent at the given file/line with the format (text of the log).
Synopsis¶
java -jar lightrunc.jar log <AgentId> <Filename>:<LineNumber> <Format> -expireSec <ExpireSec> [-ignoreQuota]
Important
If the file name and line number don't match the bytecode version of the app, Lightrun will behave inconsistently and will most likely fail.
Options¶
Option | Description |
---|---|
Agent-ID | The ID of the relevant agent. Change AgentID to tag:tagName to insert the action into a tag. |
Filename | The name of the file, including the suffix |
LineNumber | The number of the line of code in the referenced file. |
Format | The text to appear in your logs. |
expireSec | The amount of time for which this log should run. Dynamic logs timeout after 1 hour by default if you don't insert an expiry time. |
ignoreQuota | When set, the quota limit configured for running Lightrun actions is overridden and this log will continue to run even if it reaches the quota. Only users with the Ignore Quota role can use this option. |
Example¶
Example
- run
java -jar lightrunc.jar log <AgentId> <Filename>:<LineNumber> <Format> -expireSec <ExpireSec> [-ignoreQuota]
to add a log to an agent.$ java -jar lightrunc.jar log 00e5ab81-2d63-404f-9c27-2f7ee9a0bfb8 request.js:11 Hello-world -expireSec 360 The log was submitted
- run
java -jar lightrunc.jar log tag:<tagName> <Filename>:<LineNumber> <Format> -expireSec <ExpireSec> [-ignoreQuota]
to add a log to a set of agents identified by a tag.$ java -jar lightrunc.jar log tag:Production request.js:11 Hello-world -expireSec 360 The log was submitted
print-logs
¶
The print-logs
command outputs all logs for the given agent.
Synopsis¶
java -jar lightrunc.jar print-logs <AgentId> [<ActionId>] [-range <StartTimestamp-EndTimestamp (milliseconds)>]
Note
- Piping must be enabled (
enable-piping
command) for theprint-logs
to be able to output. - The
print-logs
output is limited to 1000 most recent results.
Options¶
Option | Description |
---|---|
AgentId | The ID of the relevant agent. |
ActionId | The ID of the action for which you want to view all logs. You can run 'list-actions' to view a list of action IDs. |
range | Specify a time range to view dynamic logs for only that period of time. Use 13 digit epoch time when specifying a range. |
Example¶
Example
run java -jar lightrunc.jar print-logs <AgentId> [<ActionId>] [-range <StartTimestamp-EndTimestamp (milliseconds)>]
$ java -jar lightrunc.jar print-logs 0 0 -range 1615391135824-1615391135924
INFO: LOGPOINT: 197581639 is a prime number
INFO: LOGPOINT: 197581649 is a prime number
INFO: LOGPOINT: 197581651 is a prime number
INFO: LOGPOINT: 197581673 is a prime number
INFO: LOGPOINT: 197581687 is a prime number
INFO: LOGPOINT: 197581697 is a prime number
INFO: LOGPOINT: 197581717 is a prime number
INFO: LOGPOINT: breakpointId: [f188655e-7dab-42a1-acad-ce53a16a85dc]: Logpoint is paused due to high call rate until log quota is restored
print-all-logs
¶
The print-all-logs
command prints all logs for all agents.
Synopsis¶
java -jar lightrunc.jar print-all-logs
Note
- Piping must be enabled (
enable-piping
command) for theprint-all-logs
to be able to output. - The
print-all-logs
output is limited to 1000 most recent results.
Example¶
Example
run java -jar lightrunc.jar print-all-logs
$ java -jar lightrunc.jar print-all-logs
INFO: LOGPOINT: breakpointId: [786e3a7e-a60b-4e48-884e-2c126c4da8e3]: Logpoint is paused due to high call rate until log quota is restored
INFO: LOGPOINT: Hello world 24373299
INFO: LOGPOINT: Hello world 24373300
INFO: LOGPOINT: Hello world 24373301
INFO: LOGPOINT: Hello world 24373298
INFO: LOGPOINT: Hello world 24373307
INFO: LOGPOINT: Hello world 24373308
INFO: LOGPOINT: Hello world 24373309
INFO: LOGPOINT: Hello world 24373310
INFO: LOGPOINT: Hello world 24373312
clog
¶
The clog
command inserts a conditional log for the given agent in the given file and line.
Synopsis¶
java -jar lightrunc.jar clog <AgentId> <Filename>:<LineNumber> <Format> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
Important
If the file name and line number don't match the bytecode version of the app, Lightrun will behave inconsistently and will most likely fail.
Options¶
Option | Description |
---|---|
Agent-ID | The ID of the relevant agent. Change AgentID to tag:tagName to insert the action into a tag. |
FileName | The name of the file containing the code in which to add the metric, including the extension. For example: MyJavaFile.java |
LineNumber | The line number within the code file. |
Format | The text to appear in your dynamic logs for this metric. |
Condition | Any valid Java expression that does not change the state of the code. |
ExpireSec | The amount of time for which this log should run. |
ignoreQuota | When set, the quota limit configured for running Lightrun actions is overridden and this log will continue to run even if it reaches the quota. Only users with the Ignore Quota role can use this option. |
Example¶
Example
- run
java -jar lightrunc.jar clog <AgentId> <Filename>:<LineNumber> <Format> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
to add the clog to an agent.The log will be printed when the expressionjava -jar lightrunc.jar clog 5c6e9cdef4e833279ee286a1 Main.java:10 "Array size {arr.length}" -condition "i % 10 == 0""
i % 10 == 0
evaluates to true. - run
java -jar lightrunc.jar clog tag:<tagName> <Filename>:<LineNumber> <Format> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
to add a clog to a set of agents identified by a tag.The log will be printed when the expressionjava -jar lightrunc.jar clog tag:Production Main.java:10 "Array size {arr.length}" -condition "i % 10 == 0""
i % 10 == 0
evaluates to true.
snapshot
¶
The snapshot
command inserts a snapshot to the specified agent at the given file/line.
Synopsis¶
java -jar lightrunc.jar snapshot <AgentId> <Filename>:<LineNumber> [-condition <Condition>] [-expireSec <ExpireSec>] [-maxHitCount <MaxHitCount>] [-ignoreQuota]
Important
If the file name and line number don't match the bytecode version of the app, Lightrun will behave inconsistently and will most likely fail.
Options¶
Option | Description |
---|---|
Agent-ID | The ID of the relevant agent. Change AgentID to tag:tagName to insert the action into a tag. |
FileName | The name of the file containing the code in which to add the metric, including the extension. For example: MyJavaFile.java |
LineNumber | The line number within the code file. |
Condition | Any valid Java expression that does not change the state of the code. |
ExpireSec | The amount of time for which this action should run. |
MaxHitCount | The maximum number of times to take this snapshot during the valid period of this action; default = 1 |
ignoreQuota | When set, the quota limit configured for running Lightrun actions is overridden and this action will continue to run even if it reaches the quota. Only users with the Ignore Quota role can use this option. |
Example¶
Example
- run
java -jar lightrunc.jar snapshot <AgentId> <Filename>:<LineNumber> [-condition <Condition>] [-expireSec <ExpireSec>] [-maxHitCount <MaxHitCount>] [-ignoreQuota]
to add a snapshot to an agent.$ java -jar lightrunc.jar snapshot da0c440b-ae8e-4011-9f61-93a07405baa2 PrimeMainMR.java:42 The breakpoint was submitted
- run
java -jar lightrunc.jar snapshot tag:<tagName> <Filename>:<LineNumber> [-condition <Condition>] [-expireSec <ExpireSec>] [-maxHitCount <MaxHitCount>] [-ignoreQuota]
to add a snapshot to a set of agents identified by a tag.$ java -jar lightrunc.jar snapshot tag:Production PrimeMainMR.java:42 The breakpoint was submitted
snapshot-data
¶
The snapshot-data
command prints out the accumulated data for a snapshot, or save the data into a specified output file.
Synopsis¶
java -jar lightrunc.jar snapshot-data <AgentId> <SnapshotId>[<output-file>]
Options¶
Option | Description |
---|---|
Agent-ID | The ID of the relevant agent. |
SnapshotId | The ID of the snapshot for which to print the existing data. |
Example¶
Example
run java -jar lightrunc.jar snapshot-data <AgentId> <SnapshotId>[<output-file>]
$ java -jar lightrunc snapshot-data e178578f-14da-476f-a084-bc460d6ec2b0 eb5abb0a-4677-4bed-9999-ea0b76c4efd2
[class BreakpointDataDTO {
actionId: eb5abb0a-4677-4bed-9999-ea0b76c4efd2
agentId: e178578f-14da-476f-a084-bc460d6ec2b0
createTime: class TimeDTO {
nanos: 696685698
seconds: 1611590801
}
dataId: 72f81a80-c415-4f00-a43d-83523a735230
evaluatedExpressions: null
stackFrames: [class AgentStackFrameDTO {
arguments: [class WatchEntryDTO {
members: null
name: args
status: null
type: null
value: null
varTableIndex: 1
}]
function: PrimeMain.main
locals: [class WatchEntryDTO {
members: null
name: i
status: null
type: int
value: 30514481
varTableIndex: null
}]
location: class LocationDTO {
column: 0
endOfLine: false
line: 20
path: PrimeMain.java
}
}]
variableTable: [class WatchEntryDTO {
members: null
name: null
status: class BreakpointStatusDTO {
description: class BreakpointStatusDescriptionDTO {
format: Buffer full. Use an expression to see more data
parameters: null
}
isAccepted: false
isError: true
refersTo: VARIABLE_VALUE
}
type: null
value: null
varTableIndex: null
}, class WatchEntryDTO {
members: [class WatchEntryDTO {
members: null
name: length
status: null
type: int
value: 0
varTableIndex: null
}]
name: null
status: null
type: java.lang.String[]
value: null
varTableIndex: null
}]
}]
Tip
You may use agent/action indexes instead of an ID. For example:
java -jar lightrunc.jar snapshot-data 0 0 will output the first snapshot of the first agent
Tip
The output file is saved in JSON format, and can be manipulated by other tools.
customMetric
¶
The customMetric
command creates a custom metric based on specified expressions and values
Note
- This command is currently supported only for Java agents.
- Always use quotes when setting a condition ("num>3") in order to avoid shell output redirection to file descriptor 3.
Synopsis¶
java -jar lightrunc.jar customMetric <AgentId> <FileName>:<LineNumber> <MetricName> <MetricExpression> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
Important
If the file name and line number don't match the bytecode version of the app, Lightrun will behave inconsistently and will most likely fail.
Options¶
Option | Description |
---|---|
ignoreQuota | When set, the quota limit configured for running Lightrun actions is overridden and this custom metric will continue to run even if it reaches the quota. The quota controls use of CPU, Networking, Memory, excessively long strings, too many instructions printing out, protection from infinite loops and the like. Only administrators with the Ignore Quota role can use this option. |
Agent-ID | The ID of the relevant agent. Change AgentID to tag:tagName to insert the action into a tag. |
FileName | The name of the file containing the code in which to add the metric, including the extension. For example: MyJavaFile.java |
LineNumber | The line number within the code file. |
MetricName | Assign a unique name to this metric. |
MetricExpression | Configure any valid Java expression that does not change the state of the code. |
Condition | Any valid Java expression that does not change the state of the code. |
ExpireSec | Configure the duration that this metric should run in seconds. |
Example¶
Example
- run
java -jar lightrunc.jar customMetric <AgentId> <FileName>:<LineNumber> <MetricName> <MetricExpression> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
to add a customMetric to an agent.$ java -jar lightrunc.jar customMetric 0 PrimeMain.java:14 MyPrimeMetric num -condition "num>3" INFO: 10 Mar 2021, 11:59:26 CustomMetric Stats: { "MyPrimeMetric" : {"count" : 55106,"max" : 675526339,"mean" : 6.731275234790297E8,"min" : 629652109,"p50" : 6.73885867E8,"p75" : 6.74822641E8,"p95" : 6.75395141E8,"p98" : 6.75455779E8,"p99" : 6.75491381E8,"p999" : 6.75526339E8,"stddev" : 2424070.6627122667 } }
- run
java -jar lightrunc.jar customMetric tag:<tagName> <FileName>:<LineNumber> <MetricName> <MetricExpression> [-condition <Condition>] [-expireSec <ExpireSec>] [-ignoreQuota]
to add a customMetric to a set of agents identified by a tag.$ java -jar lightrunc.jar customMetric tag:Production PrimeMain.java:14 MyPrimeMetric num -condition "num>3" INFO: 10 Mar 2021, 11:59:26 CustomMetric Stats: { "MyPrimeMetric" : {"count" : 55106,"max" : 675526339,"mean" : 6.731275234790297E8,"min" : 629652109,"p50" : 6.73885867E8,"p75" : 6.74822641E8,"p95" : 6.75395141E8,"p98" : 6.75455779E8,"p99" : 6.75491381E8,"p999" : 6.75526339E8,"stddev" : 2424070.6627122667 } }
counter
¶
The counter
command returns the number of times each thread hit a specified code line.
Note
- This command is currently supported only for Java agents.
Synopsis¶
java -jar lightrunc.jar counter <AgentId> <FileName>:<LineNumber> <CounterName> [-condition <Condition>] [-expireSec <ExpireSec>] [-aggregateBy <Aggregate By Prefix>] [ignoreQuota]
Important
If the file name and line number don't match the bytecode version of the app, Lightrun will behave inconsistently and will most likely fail.
Options¶
Option | Description |
---|---|
Agent-ID | The ID of the relevant agent. Change AgentID to tag:tagName to insert the action into a tag. |
FileName | The name of the file containing the code in which to add the metric, including the extension. For example: MyJavaFile.java |
LineNumber | The line number within the code file. |
CounterName | The name of the counter - the text to appear in your dynamic logs for this metric. |
Condition | Any valid Java expression that does not change the state of the code. |
ExpireSec | The amount of time for which this counter should run. |
aggregateBy | Collect and aggregate data for the specified string only. |
ignoreQuota | Only users with the Ignore Quota role can use this option. When set, the quota limit configured for running Lightrun actions is overridden and this counter will continue to run even if it reaches the quota. |
Example¶
Example
- run
java -jar lightrunc.jar counter <AgentId> <FileName>:<LineNumber> <CounterName> [-condition <Condition>] [-expireSec <ExpireSec>] [-aggregateBy <Aggregate By Prefix>] [ignoreQuota]
to add a counter to an agent.$ java -jar lightrunc counter e178578f-14da-476f-a084-bc460d6ec2b0 PrimeMain.java:20 myCounter The counter was submitted
- run
java -jar lightrunc.jar counter tag:<tagName> <FileName>:<LineNumber> <CounterName> [-condition <Condition>] [-expireSec <ExpireSec>] [-aggregateBy <Aggregate By Prefix>] [ignoreQuota]
to add a counter to a set of agents identified by a tag.$ java -jar lightrunc counter tag:Production PrimeMain.java:20 myCounter The counter was submitted
certificates
¶
show-certificates
¶
The show-certificates
command outputs all certificates present in your Lightrun server.
Synopsis¶
java -jar lightrunc.jar show-certificates
Example¶
Example
run java -jar lightrunc.jar show-certificates
$ java -jar lightrunc.jar show-certificates
ee80811b38e7e6c2dc4cc372cbea86bd86b446b012e427f2e19bf094afba5d12 (PRECONFIGURED)
add-certificate
¶
The add-certificate
command adds a new certificate to the Lightrun server.
Synopsis¶
java -jar lightrunc.jar add-certificate <certificate-sha256-public-key>
Options¶
Option | Description |
---|---|
<certificate-sha256-public-key> | sha256 of the public key of the certificate |
Example¶
Example
run java -jar lightrunc.jar add-certificate <certificate-sha256-public-key>
to add a new cerficate.
$ java -jar lightrunc.jar add-certificate <certificate-sha256-public-key>
Successfully added certificate.
rm-certificate
¶
The rm-certificate
command removes a certificate from the Lightrun server.
Synopsis¶
java -jar lightrunc.jar rm-certificate <certificate-sha256-public-key>
Options¶
Option | Description |
---|---|
<certificate-sha256-public-key> | sha256 of the public key of the certificate |
Example¶
Example
run java -jar lightrunc.jar rm-certificate <certificate-sha256-public-key>
to remove a cerficate from the Lightrun server.
$ lightrunc.jar rm-certificate <certificate-sha256-public-key>
Successfully removed certificate <certificate-sha256-public-key>
get-pinning-status
¶
The get-pinning-status
command returns the Lightrun server certificate pinning status.
Synopsis¶
java -jar lightrunc.jar get-pinning-status
Example¶
Example
run java -jar lightrunc.jar get-pinning-status
.
$ java -jar lightrunc.jar get-pinning-status
Pinning status is disabled
enable-pinning-status
¶
The enable-pinning-status
command enables certificate pinning.
Synopsis¶
java -jar lightrunc.jar enable-pinning-status
Example¶
Example
run java -jar lightrunc.jar enable-pinning-status
$ java -jar lightrunc.jar enable-pinning-status
Certificate pinning is now enabled
disable-pinning-status
¶
The disable-pinning-status
command disables certificate pinning.
Synopsis¶
java -jar lightrunc.jar disable-pinning-status
Example¶
Example
run java -jar lightrunc.jar disable-pinning-status
$ java -jar lightrunc.jar disable-pinning-status
Certificate pinning is now disabled