Giter Club home page Giter Club logo

dominecore / coredog Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 309 KB

🐶Coredog is an open-source project designed to monitor and manage core dumps in a Kubernetes cluster. It automatically detects core files generated by applications running in the cluster, uploads them to an S3-compatible object storage system, and provides pre-signed S3 download links to all developers through instant messaging software.

Home Page: https://hub.docker.com/r/coderflyfyf/coredog

License: MIT License

Dockerfile 0.63% Makefile 2.02% Go 82.95% Smarty 14.39%
corefile kubernetes monitor

coredog's Introduction

Coredog 🐶

Coredog is an open-source project designed to monitor and manage core dumps in a Kubernetes cluster. It automatically detects core files generated by applications running in the cluster, uploads them to an S3-compatible object storage system, and provides pre-signed S3 download links to all developers through instant messaging software.

Table of Contents

  1. Architecture
  2. Features
  3. Prerequisites
  4. Getting Started
  5. Configuration
  6. Deployment
  7. Usage
  8. License
  9. Contributors

Architecture

Coredog Architecture The above diagram represents the high-level architecture of Coredog. It showcases the key components and their interactions.

Features

  • Real-time monitoring of core files generated in the Kubernetes cluster
  • Automatic upload of core files to an S3-compatible object storage system
  • Pre-signed S3 download links shared with all developers via instant messaging software
  • Easy configuration and deployment using Helm charts

Prerequisites

Before deploying Coredog, ensure that you have the following prerequisites:

  • A Kubernetes cluster with at least one node
  • A running instance of an S3-compatible object storage system (e.g., MinIO, Amazon S3)
  • An instant messaging software that supports sharing pre-signed URLs (e.g., Slack, Microsoft Teams)
  • Helm installed on your local machine

Getting Started

To get started with Coredog, clone the repository to your local machine:

git clone https://github.com/DomineCore/coredog.git
cd coredog

Configuration

Before deploying Coredog, you need to update the charts/values.yaml file with your S3-compatible object storage system and instant messaging software settings. Here's a brief overview of the available configuration options:

config:
  watcher.yaml: |-
    ScrapePaths: ["/core/dump"]
    StorageConfig:
      enabled: true
      protocol: s3
      s3AccesskeyID: "s3AccesskeyID"
      s3SecretAccessKey: "s3SecretAccessKey"
      s3Region: "ap-nanjing"
      S3Bucket: "bucket"
      S3Endpoint: "endpoint"
      StoreDir: corefiles
      PresignedURLExpireSeconds: 3600

  controller.yaml: |-
    NoticeChannel:
    - chan: slack
      webhookurl: "url" ## 
    - chan: wechat
      webhookurl: "url"

## Define your corefile source storage
corefileVolume:
  type: hostPath
  name: corefile
  hostPath:
    path: /root/core
    type: Directory
  emptyDir: {}
  persistentVolumeClaim:
    claimName: my-pvc

Deployment

To deploy Coredog to your Kubernetes cluster using Helm, navigate to the charts directory and run the following command:

helm install coredog ./coredog

This will create a new Helm release named coredog and deploy the Coredog chart to your Kubernetes cluster.

Usage

Once Coredog is deployed, it will automatically monitor the Kubernetes cluster for core files and upload them to the specified S3-compatible object storage system. Pre-signed S3 download links will be shared with all developers through the specified instant messaging software.

License

Coredog is licensed under the MIT License.

Contributors

DomineCore
Core
ZhaiShaoww
ZhaiShaoww
levvli
Levvli

coredog's People

Contributors

dominecore avatar levvli avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

zhaishaoww

coredog's Issues

enhance: Support the use of os.Truncate to clear the corefile.

In order to release disk space as soon as possible, I hope that not only the 'remove' operation is executed, but also the file content is directly emptied to prevent the inability to release due to the file being occupied by other processes. This feature carries a certain risk and needs to support enabling through configuration.

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.