Sidekick Open Source Live Debugger : Embed Sidekick features to your applications
Control Sidekick agents from a React & Express application
What is Sidekick?
Sidekick is an open-source live application debugger that lets you troubleshoot your applications while they keep on running.
Check out Sidekick Open-source repo to learn more:
[GitHub - runsidekick/sidekick: Free and open-source live application debugger. Like chrome dev…
Sidekick is a live application debugger that lets you troubleshoot your applications while they keep on running. Add…github.com](https://github.com/runsidekick/sidekick "github.com/runsidekick/sidekick")
Sidekick agents can be controlled both via a UI from Sidekick Web IDE, Visual Studio Code & IntelliJ IDEA and via a headless approach from REST API & Node.js Client. Sidekick REST API and Node.js client allows developers to control Sidekick actions from their own solutions.
About the example
We have prepared an example project to show how you can develop a custom application to control your Sidekick agents using Sidekick Node.js Client.
This example consists of 2 parts. First part is a standard web application that we will live debug and the second one is our custom Sidekick control app. Both parts are connected to a self hosted version of Sidekick.
Sidekick Control App that we have build has 2 main features.
1 - Putting tracepoints
In the React applicaion you can find 2 buttons that let you put tracepoints to specified locations.
Tracepoints are added via making a call to express server that is running behind. The express server uses the Sidekick client’s putTracepoints function to make an api call to Sidekick REST API.
apiClient.putTracepoints(params);
2 - Listening events
Sidekick client’s onTrigger feature is used to listed activities from Sidekick broker.
onTrigger(clientInfo);
We have implemented a custom ingest function for tracepoints to send them to the react application using socket.io.
function ingestFunc(index) {
return async function (data) {
console.log(data);
io.to(“stack-room”).emit(“stack”, data);
};
}
get extra info about Sidekick Node.js client here: Sidekick Node.js Client
Built With
Getting Started
Prerequisites
Make sure Sidekick broker is running. (check main Sidekick repo)
If you have changed the default settings, update token and port values in this tutorial accordingly.
Check out our Quick Start Guide.
Part-1 | Employee System (Main App)
# Clone Employee System repository
git clone https://github.com/boroskoyo/sidekick-example-employee-management-system
# Go into the repository
cd sidekick-example-employee-management-system
# Install dependencies
npm i --legacy-peer-deps
# Run the app
npm run start
UI will start running at http://localhost:3000 and backend will be using the port 8081
server/index.js
- This is where we include our Sidekick agent. You can edit the agent settings according to your setup and needs.
Agent settings can be seen below:
Agent Settings
Part-2 | Control Application
This is the application we have built to control our Sidekick agent.
# Clone control app repository
git clone github.com/boroskoyo/sidekick-electron-quic..
# Go into the repository
cd sidekick-electron-quick-start
# Install dependencies
npm i --legacy-peer-deps
# Run the app
npm run dev-app
You can also run the browser version — localhost:5173
# You can also run the browser version - localhost:5173
npm run dev
Sidekick Explorer UI
server.js
- Contains the main functions for putting Tracepoint.params
- This is where we prepare our params for Sidekick API requests for putting tracepoints.
parameters for tracepoint
filename
- Filname paramters consists of git address of the file and the commit hash.
Usage
After running all applications. Go to http://localhost:3000 and check out the employee app. Then use the put tracepoint buttons on the Electron app to put tracepoints on the running application.
Sidekick control app in action
Tracepoint Locations:
Get Employees (Line 62)
Delete Employees (Line 202)
- Visit the home page and capture stack related to employee list endpoint.
- Delete an employee to collect related data.
- Check out Electron app to see your collected events.
You can than further edit those apps to explore Sidekick Client’s features.
Conclusion
As you can see above, Sidekick clients allow developers to easily use collected data and control Sidekick Actions from third party applications. We are planning to implement Sidekick control plugins for different dashboards and platforms, share your desired targets and feature requests via issues and discussions.
Please let us know your invaluable ideas because they will guide us on our path to discovering the future of application observability. You can get in touch with us through Github, Twitter, and join our Discord community.
If you liked this article and learn more about Sidekick you can check out our docs and start using it right away!
Repo related to this article:
[GitHub - boroskoyo/sidekick-electron-quick-start: an example app to show how you can control your…
Example to show how you can control your agents from a React application Explore Sidekick " This project aims to show…github.com](https://github.com/boroskoyo/sidekick-electron-quick-start "github.com/boroskoyo/sidekick-electron-quic..")