Git Product home page Git Product logo

kenobi's Introduction

drdroidlogo

Kenobi -- Open Source Log-to-Metrics & Log-to-Funnels platform

Kenobi helps you proactively monitor your application by defining correlations in your logs. Kenobi is designed to have a flexible rule-engine, easy-to-use interface and hassle-free deployment.

Capabilities

1. Log to events:

You can buffer a stream of logs to Kenobi and define filters and transformations on the platform using the GROK parser built into the platform.

2. Event Sequences:

Once you have events flowing in, you can define different sequences by joining them. Here are some of the examples:

  1. 2-step sequence (defined as a monitor): Define a relation, A1 → A2 with A1 being primary and A2 being secondary event img.png
  2. n-step sequence (defined as a funnel): Define a set of events A1 → A2 → ... → An that are expected to happen sequentially
    • todo -- add recording here. img_2.png
  3. n-step trees (defined as an entity): Define a set of events that are not necessarily sequential but inter-related
    • todo -- add recording here img_1.png

3. Metrics:

Define aggregations on your events and sequences. Some of the allowed metric types include:

  • Transition time and success rate between nodes in an event sequence or tree
  • Aggregation functions on any attribute within an event
  • Aggregation functions on any attribute within an event, grouped by another (enum) attribute in any other event

4. Alerting Rule Engine:

Kenobi enables you to create rules over your events and event sequences. Here are some rules that would be possible in the platform:

  • Send me an alert if node A2 does not happen after node A1 for every instance where attribute_value=specific_value.
  • Send me an alert if more than 5% of the nodes "between" node A1 and node An are stuck at a specific node.
  • Send me an alert if sequence is stuck at node Ai for more than stipulated duration.

Kenobi can push these alerts to itself, email and slack currently.

Sounds useful?

Play around in demo environment 👇🏽

Exploring Kenobi in a Sandbox

For the purpose of this sandbox, we have created a sample payment application. In the sandbox, you will be able to see logs from one such application, and how we can transform it into funnels and charts.

  • Cloud Sandbox: Play around in the cloud sandbox here (email ID required - we will not share your PII with any external party or send you unnecessary emails)
  • Self-hosted Sandbox: To deploy Kenobi in your environment, run the following on a Linux machine with Docker (recommended 8GB memory):
 /bin/bash docker_deploy.sh

After this, you can use the platform on port 80 on your host IP address. Use the following credentials for login:

Username -> [email protected]
Password -> password

Take note of the deployment hostname/IP and note the API token from the API Keys section in your portal. They will be handy when setting up integration for sending events.

Doctor Droid's open source deployment is reasonably scalable due to its micro-service architecture. In case you see difficulties in scaling it, reach out to us at [email protected] and we'll help you.

Creating sample events

You can run the in-built script for a basic payments workflow in an ecommerce company. Once your deployment is setup, set the following environment variables:

export HOST_URL=<your_deployment_ip_or_hostname> # Add http or https in it without the trailing slash
export API_TOKEN=<your_api_key>

Post this, you can run the basic python script that publishes events. Make sure you have python3 and pip3 installed in your environment

/bin/bash events_publish.sh

After your events start coming in, you can check them in the Search section.

Integrating your log stream to Kenobi

Before being able to create funnels, metrics or rules, you need to parse data into a kenobi readable format.

You can stream application logs into Kenobi using:

How to stop the deployment

Run the following command from the root directory

 /bin/bash docker_stop.sh

Cloud Hosting

Doctor Droid supports a robust cloud platform for Kenobi. If you'd like to use the cloud platform instead of managing the platform in-house, sign up on our website or book a demo.

License

This repo is available under the MIT license.

kenobi's People

Contributors

dimittal avatar droid-mohit avatar sidphoenix17 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

kenobi's Issues

Self-hosting build error

I have tried to make use drdroid on my own VM, but the process got stuck on react build phase.

Removing intermediate container fec4f71ec948
 ---> 3493477831c7
Step 4/12 : WORKDIR /app
 ---> Running in 7e588801ad20
Removing intermediate container 7e588801ad20
 ---> dbfdec5d723d
Step 5/12 : COPY . .
 ---> 02b2e18103f2
Step 6/12 : RUN npm run build
 ---> Running in 73a9faf19645

> [email protected] build
> react-scripts build

Creating an optimized production build...
One of your dependencies, babel-preset-react-app, is importing the
"@babel/plugin-proposal-private-property-in-object" package without
declaring it in its dependencies. This is currently working because
"@babel/plugin-proposal-private-property-in-object" is already in your
node_modules folder for unrelated reasons, but it may break at any time.

babel-preset-react-app is part of the create-react-app project, which
is not maintianed anymore. It is thus unlikely that this bug will
ever be fixed. Add "@babel/plugin-proposal-private-property-in-object" to
your devDependencies to work around this error. This will make this message
go away.

This is where the build gets stuck, please help me deploy the drdroid on my own VM.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.