Java - How to ensure I am running the latest/recommended agent version

Problem

When configuring the SeaLights agent for Java, it is difficult to manage the .jar files are in the correct version - especially in standalone environments (containers, backend servers etc)

Solution

The following shell script checks for the recommended agent and latest version, and in case it does not exist locally - downloads & unzips it in the given directory.

Downloading the Recommended Agent set in settings

#!/bin/bash export DOMAIN=<CustomerDomain>.sealights.co export SEALIGHTS_AGENT_TOKEN=`cat sltoken.txt` if [ -f "sealights-java-agent.zip" ]; then export SL_LOCAL_VERSION=`cat sealights-java-version.txt` export SL_SETTINGS_VERSION=`curl -sX GET "https://$DOMAIN/sl-api/v1/agent-apis/agents/types/sealights-java/default-version" -H "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" -H "accept: application/json" | jq -r .version` if [ "${SL_LOCAL_VERSION}" == "${SL_SETTINGS_VERSION}" ]; then echo "Skipping Download - Local agent matches the current latest version:" $SL_SETTINGS_VERSION else echo "Local agent is not using the latest version. Deleting local agent." rm -fr sealights-java-* sl-*.jar fi fi if [ ! -f "sealights-java-agent.zip" ]; then echo "Downloading Java Agent version set in Settings..." wget -nv -O sealights-java-agents.zip --header "accept: application/json" --header "Authorization: Bearer $SEALIGHTS_AGENT_TOKEN" \ https://$DOMAIN/api/v2/agents/sealights-java/recommended/download unzip -oq sealights-java-agents.zip echo "Local agent version is now:" `cat sealights-java-version.txt` fi

Downloading the latest agent

#!/bin/bash if [ -f "sealights-java-latest.zip" ]; then export LOCL_SL_VERSION=`cat sealights-java-version.txt` export CURR_SL_VERSION=`curl -s https://agents.sealights.co/sealights-java/sealights-java-version.txt` if [ "${LOCL_SL_VERSION}" == "${CURR_SL_VERSION}" ]; then echo "Skipping Download - Local agent matches the current latest version:" $CURR_SL_VERSION else echo "Local agent is not using the latest version. Deleting local agent." rm -fr sealights-java-* sl-*.jar fi fi if [ ! -f "sealights-java-latest.zip" ]; then echo "Downloading Sealights Latest Agent..." wget -nv https://agents.sealights.co/sealights-java/sealights-java-latest.zip unzip -o sealights-java-latest.zip echo "Local agent version is now:" `cat sealights-java-version.txt` fi