Native SDKs

SDKs

We are building SDKs for multiple languages and frameworks to simplify sending events. Using them, you will be able to reduce the effort to send events.
Below is our roadmap for SDKs:

LanguageRelease plan
Pythondrdroid-sdk
Javadrdroid-java
GoLang, JavascriptQ2 2023

Agent (Collector)

Doctor Droid provides a GoLang based agent that you can setup in your own environment and help in significantly reducing the latency of publishing these events. This agent will be based in your VPC or in your own k8s cluster.

  • Event publishing to our backend asynchronous and reducing the latency in your service. With the agent, it would take around 1ms to create an event.
  • Using the agent also reduces the burden of managing the Doctor Droid's API key in each service that is publishing to it. The agent can be configured to handle authentication when sending events to our servers and you can pass events to it without authentication since it is within your own cloud.

The agent is published by Doctor Droid on a public AWS ECR Repository and can be setup on both Docker directly or within your kubernetes cluster using helm charts.

Using Docker

Run this command for setting up the agent in any virtual machine or your laptop. Use the API key from your Doctor Droid account to put in the command for DRDROID_AUTH_TOKEN.

docker run -p 5121:5121 -e DRDROID_AUTH_TOKEN=<> public.ecr.aws/y9s1f3r5/drdroid/agent:0.3.0 collector --configScheme=default

Once this is up, it is available at port 5121 on the machine you ran this command on and you can use that endpoint for publishing your events instead of ingest.drdroid.io as per our API reference.

Using helm charts on K8s

Run the following commands from the machine you are managing your k8s clusters from. Use the API key from your Doctor Droid account to put in the command for drdroid-auth-token.

  1. Create namespace for drdroid
kubectl create namespace drdroid
kubectl create -n drdroid secret generic drdroid-agent-auth-token --from-literal=drdroid-auth-token=<>
  1. Add DrDroid agent using helm charts
helm repo add drdroid https://drdroidlab.github.io/charts
helm repo update
helm install drdroid-agent --namespace drdroid drdroid/drdroid-agent

Once this is up, it is available at port 5121 on your k8s cluster you ran this command for and you can use the internal endpoint http://drdroid-agent.drdroid:5121 for publishing your events instead of ingest.drdroid.io as per our API reference.

  1. You can remove the agent also using the following command
helm uninstall drdroid-agent --namespace drdroid

If you are using our SDK in your service, you can configure it to send events to your agent's endpoint as well. Each SDKs documentation mentions how the server hostname can be overridden so that you can send them to the agent. The agent is configured only to send events to Doctor Droid's backend.