Mikey
September 23, 2019
By following the steps in this blog post you will be able to install and configure nerd.vision so you are able to debug your applications in any environment. The process will typically take around 10 minutes. We also have a handy video which demonstrate how to install and configure nerd.vision.
In this blog, getting started will be split into 3 simple steps:
These 3 steps are the same in any environment, whether it is hosted locally, in the cloud or in a virtualized platform.
The nerd.vision Java client is installed as a Java agent, this allows you to install the agent in various ways depending on how you start your Java application.
There are 3 steps required to configure the agent:
Downloading the nerdvision.jar file
You can download the nerdvision.jar file via directly from https://get.nerd.vision/java/latest/nerdvision.jar or alternatively by a curl / or other web retrieval tool request.
An example curl request would be:
curl "https://get.nerd.vision/java/latest/nerdvision.jar" -o nerdvision.jar
Your API key can be found within the quick start guide within the product, where the key is already contained in a javaagent argument you can copy straight into your java configuration and is also available in the nerd.vision account web app
Depending on how you are running your application, you can configure the java agent in multiple ways. Below are 3 common examples, however, there will be other configurations you may have to use in your environment.
Configuring the java agent in your environment is done through configuring the -javaagent argument as follows:
-javaagent:{path}/nerdvision.jar=api.key=xxxxxxxxxxxxxxxxxxxx
java -javaagent:{path}/nerdvision.jar=api.key=xxxxxxxxxxxxxxxxxxxx -jar application.jar
export MAVEN_OPTS="-javaagent:{path}/nerdvision.jar=api.key=xxxxxxxxxxxxxxxxxxxx"
export JAVA_OPTS="$JAVA_OPTS -javaagent:{path}/nerdvision.jar=api.key=xxxxxxxxxxxxxxxxxxxx"
You can set a defined list of tags for your client. This could be tags such as “environment=production”. A tag is made of a key-value pair and can be any combination of key/value you like.
Tags can we add by adding a second parameter directly after the javaagent. An example configuration would be:
-javaagent:{path}/nerdvision.jar=api.key=xxxxxxxxxxxxxxxxxxxx -Dnerdvision.tags=env=production,cluster=1,app=test
These tags can be used to dictate if a breakpoint is fired on a particular client.
Start your application through a service or console.
In the log of your application, you will see a code block similar to:
INFO nerdvision: ---------------------------------------------------------
INFO nerdvision: nerdvision - Copyright (C) Intergral GmbH. All Rights Reserved
INFO nerdvision: ---------------------------------------------------------
This indicates that nerd.vision is successfully installed and running.
At the time of writing this blog post, the only 2 supported repositories are GitLab and GitHub. Support for BitBucket and local file system workspaces is planned and will come in a later version.
Access to Git private or group projects is granted by logging into GitLab / GitHub through NerdVision, public repositories can be added by inputting a Git URL with no authentication required.
When configuring a GitLab or GitHub project for the first time, you will be prompted to sign in to either GitLab or GitHub depending on the workspace you are trying to create.
When your accounts have been linked, you will immediately have access to all your projects. You can search your projects or add a URL for any public repository not linked to your account.
You can add filters for your clients based on a number of tags. Tags such as hostname, IP address and client name are default options, however, any custom tags such as environment, cluster number or any other key value specified can be used as a filter.
Now that you have configured your client and workspace, you are ready to debug your application.
You can select your application from the left-hand menu and navigate your application code using the file tree underneath the application selector or searching for a file name.
Clicking on the file name will show the contents of the file in the center panel, here you set breakpoints and see any breakpoints that are already installed. By clicking on the left margin you can create a breakpoint.
A breakpoint highlighted in green, whereas a breakpoint in grey indicates it has been disabled. Breakpoints can be configured on the right-hand panel. Where you can disable the breakpoint by clicking the tick or right-clicking to edit or delete the breakpoint.
When editing the breakpoint, you can configure email notifications, set a condition and add watches to your breakpoint.
Email notifications will be sent when breakpoints trigger so you know when to go to nerd.vision and view the breakpoint information
Conditional breakpoints allow you to trigger a breakpoint based on the state of the application, for example breaking only if a variable is set to a specific value. Some examples of conditional breakpoints include:
Watches allow you to see the state of a variable or the outcome of a function called on a variable so you can see the information without inspecting the variable tree.
When your breakpoints fire, you can view the information captured in the breakpoint from the events section of the debugger. This element is at the bottom menu and can be dragged upwards to be given more real estate on your monitor.
Each breakpoint fired is visible on the left-hand side, clicking the event will show all stack frames and the top frame variables. With this data, you can see what caused your breakpoint to fire and the state of all variables at the time it fired.
Technical Support Engineer and Developer advocate for nerd.vision and other software projects. Background in object-oriented software development and data analysis. Personal hobbies include simulation gaming and watch collecting.