GithubHelp home page GithubHelp logo

goto / entropy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from raystack/entropy

0.0 0.0 0.0 1.42 MB

Entropy is a framework to safely and predictably create, change, and improve modern cloud applications and infrastructure using familiar languages, tools, and engineering practices.

Home Page: http://goto.github.io/entropy

License: Apache License 2.0

Go 99.27% Makefile 0.63% Dockerfile 0.09%

entropy's People

Contributors

abhishekv24 avatar dependabot[bot] avatar feminovialina avatar ishanarya0 avatar lavkesh avatar mabdh avatar manishdangi98 avatar ravisuhag avatar rohilsurana avatar spy16 avatar

entropy's Issues

Invalid memory metric name issue

Describe the bug
There is a warning when running entropy with dash in the app name

data-entropy-app-b7b7665-qxxl8 app 2023/09/04 06:17:31 Failed to export to Prometheus: cannot register the collector: descriptor Desc{fqName: "data-entropy_process_gc_sys", help: "Bytes of memory in garbage collection metadatas", constLabels: {}, variableLabels: []} is invalid: "data-entropy_process_gc_sys" is not a valid metric name

To Reproduce
Steps to reproduce the behavior:

  1. Use dash in the app name
  2. Run entropy

Expected behavior
No warning should be thrown and name should be valid

New kubernetes job module

Firehose has a new dlq job feature that fetch dlq data from a dlq storage and send to a sink. Entropy need to support the orchestration of such job. We could make it generic enough to run kubernetes job without firehose or dlq context.

Requirements

  • Run as a kubernetes job
    • Input
      • A set of configs and resource config
      • A dlq job image
    • Telegraf running as a sidecar to send metrics
  • Kubernetes job is immutable
  • Kubernetes job and pods won't be deleted unless it is over TTL (~ 1 month)
  • Actions
    • Start
      • Create jobs and pods if not exist
    • Stop
      • Stopping the pods (not removing the pods since the logs need to be there for more debugging)
  • Retention on finished jobs (Complete or Failed)
    • configurable ttl (default 1 month)
  • Output
    • Need to get the final-state of jobs
      • Option 1: We could perhaps put the resource in PENDING if the status is not completed or failed so entropy would poll until it is COMPLETE. Entropy will the status as COMPLETE if it is either completed or failed.
      • Option 2: Store output when Get Resource (ref easiest)

Orchestration

There are 2 possible approaches of orchestration, using kubernetes client and using helm.
With kubernetes client, entropy would need to create individual resource one by one, configmap, metadata, etc or just creating 1 job resource and inject the configs and everything there. With helm, we will need to create a chart that would be used by this module.

1. Kubernetes client

Pros

  • Simpler if we only create 1 job resource and injecting the configs in the resource

Cons

  • Won't support versioning

2. Helm

Pros

  • Have versioning

Cons

  • Need to uninstall helm if we stop the job to leave no traces in the server

Ideas

  • We can pass container spec as a config
  • Job would have only 2 containers, 1 for the main and 1 for the telegraf

Decision

  • Use kubernetes client and inject the configmap there

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.