Sidekick Recipes #1: Elasticsearch Ingest

barış kaya
3 min readJun 27, 2022

--

“What problem does Sidekick solve? “ This is the question that we ask each other each and every day.

Introducing Sidekick Recipes

Sidekick crafting recipes are here!

Sidekick comes with many advanced features and lets users collect virtually any data from their running applications. All in all, this sounds great but for what do we collect all those data? As the product team, we already have answers to this question but the number of different use cases that we receive from our customers is surprisingly many. For instance; some tend to use Sidekick for onboarding new engineers to their microservices architecture while others just want to add logs while their apps are running. Seeing all those different uses we decided to start our new series: Sidekick Recipes!

Sidekick Recipes aim to show you how you can get the most from Sidekick. As we will be providing you with our new library and let you control the consequences of your tracepoint & logpoint events, possibilities are simply endless. Recipes basically work like any of our client applications (VSCode & IntelliJ extension) but let users add their own logic. We are starting this series with our first recipe: Elasticsearch Ingest

Recipe #1: Elasticsearch Ingest

Sidekick — Elasticsearch integration

Origin: One of our customers wanted to retain their Sidekick log data in their Elasticsearch instance.

Elasticsearch integration was already on our roadmap but our customer was looking for a custom solution that they can configure easily and they wanted this integration ASAP. As a result, we have developed our first recipe.

It is a simple node application that you can get from: https://github.com/boroskoyo/sidekick-elastic

and it lets you send logs and traces to your own Elasticsearch instance.

Below you can see how you can connect Sidekick with Elasticsearch in just a few steps:

Prerequisites

This recipe has been tested with node v16.14.2

  • npm
npm install npm@latest -g

Installation

  • Clone the repo
git clone https://github.com/boroskoyo/sidekick-elastic.git

1. Install NPM packages

npm install

2. Edit config.json according to your needs

"elasticsearch-url": "<>",
"elasticsearch-apikey": "<>",
"sidekick_email": "",
"sidekick_password": ""

Log event index is sidekick_logpoint & snapshot event index is sidekick_tracepoint by default. You can override them like below:

"sidekick_tracepoint_index": "sidekick_tracepoint",
"sidekick_logpoint_index": "sidekick_logpoint"

If have an on-premise setup add the fields below according to your setup:

"sidekick_host": "ws://127.0.0.1",
"sidekick_port": "7777"

If have your user token you can use it instead of email & password :

"sidekick_token": "<>"

3. Run!

npm start
Sidekick data on Elasticseach dev console

Conclusion

It is as easy as it gets and we are not done yet. We are planning to release many new recipes for new use cases. We just started with the Elasticsearch recipe but many more to come. We are working hard on exploring ways to combine next-gen ways to combine monitoring with production debugging.

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 Twitter, and join our Discord community.

--

--

barış kaya
barış kaya

Written by barış kaya

start-ups, stand-up comedy and ankara. aws community builder product engineer @synnada also interested in node.js, flutter, game dev with unity-playmaker

No responses yet