jupiter is a free, open source monitoring & observability project written in Go and released under Apache-2.0. It has 4,566 GitHub stars, 708 forks and 16 open issues, and was last pushed 7 hours ago. On this registry it ranks #97 of 191 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is jupiter?

Jupiter is an Apache-2.0 governance-oriented microservice framework written in Go that is used in production at Douyu, aimed at Go teams that want configuration, service discovery, metrics, tracing and RPC handled by the framework instead of by glue code in every service.

What it is

Jupiter lives in the Go microservice ecosystem. It requires Go 1.19 or newer, integrates with gRPC for RPC and etcd for service discovery, and ships as a library together with a command-line toolkit. Three companion projects live in the same organization: Juno, described in the README as the microservice governance system for Jupiter; jupiter-layout, a project template; and jupiter-examples, a collection of worked examples. A hosted Juno console is offered as an online demo at jupiterconsole.douyu.com, with the credentials admin / admin.

The concrete problem it solves is the repeated assembly work that precedes every new Go service. Without a framework, a team has to wire configuration loading, etcd-backed service registration, metrics collection, trace instrumentation and RPC setup by hand, then repeat that work for each new service. Jupiter replaces that per-service scaffolding with one framework and a matching project layout, so the governance concerns — the published topics are governance, metrics and trace — arrive switched on rather than bolted on afterwards.

Key capabilities

  • The jupiter CLI toolkit, installed from github.com/douyu/jupiter/cmd/jupiter, handles both project creation and service execution.
  • Configuration is loaded from a .jupiter.toml file and passed at start with jupiter run -c cmd/exampleserver/.jupiter.toml.
  • Project scaffolding comes from jupiter new example-go, which draws on the jupiter-layout template.
  • gRPC is supported for service-to-service RPC.
  • etcd provides service discovery and the registry backing governance.
  • Metrics and trace instrumentation are first-class framework concerns rather than add-ons.
  • A web framework component sits alongside the RPC layer, with the companion Juno console covering governance.

Who uses it and how

  • Douyu runs Jupiter in production, and the README states it has been in use there for years.
  • Teams starting a new Go service run jupiter new and then code against the generated layout instead of building structure from scratch.
  • Local development brings up dependencies with docker compose -f test/docker-compose.yml up -d before jupiter run starts the service.
  • Operators use Juno as the governance system for services built on the framework, and the hosted console is available for evaluation.
  • etcd acts as the shared registry that discovery and governance rely on across services.

Getting started

Install the toolkit with go install github.com/douyu/jupiter/cmd/jupiter@latest, create a project with jupiter new example-go, bring up dependencies with docker compose -f test/docker-compose.yml up -d, and start the service with jupiter run -c cmd/exampleserver/.jupiter.toml. Go 1.19 or newer and Docker are both required.

How it compares

No competing framework is named anywhere in the facts supplied for this entry, so Jupiter stands alone here rather than sitting on a comparative axis. Its nearest relatives in the facts are its own companion projects — Juno for governance, jupiter-layout for scaffolding, and jupiter-examples for reference code — not alternatives to it.

When to use it — and when not

A self-hoster runs etcd and Docker alongside the service, and the repository ships no hosted control plane beyond the demo console, so the operational surface is real. Documentation is primarily Chinese at jupiter.douyu.com, which leaves the English README thin as a sole reference. Teams outside Go, or those not using gRPC and etcd, gain little from it, and the README itself is sparse — a quick start and outward links rather than in-depth framework documentation.

project readme (upstream, from github) — read inline

JUPITER: Governance-oriented Microservice Framework

logo

GoTest codecov go.dev reference Go Report Card license

Introduction

JUPITER is a governance-oriented microservice framework, which is being used for years at Douyu.

Online Demo

Jupiter Console (Juno)

Username: admin
Password: admin

Documentation

See the 中文文档 for the Chinese documentation.

Requirements

  • Go version >= 1.19
  • Docker

Quick Start

  1. Install jupiter toolkit
  2. Create example project from jupiter-layout
  3. Download go mod dependencies
  4. Run the example project with jupiter toolkit
  5. Just code yourself :-)
go install github.com/douyu/jupiter/cmd/jupiter@latest
jupiter new example-go
cd example-go
go mod tidy
docker compose -f test/docker-compose.yml up -d
jupiter run -c cmd/exampleserver/.jupiter.toml

Learn More:

Bugs and Feedback

For bug report, questions and discussions please submit an issue.

Contributing

Contributions are always welcomed! Please see CONTRIBUTING for detailed guidelines.

You can start with the issues labeled with good first issue.

Contact

Frequently asked questions

Is jupiter free to use?

jupiter is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does jupiter do?

Jupiter: Governance-oriented Microservice Framework.

What is jupiter written in?

jupiter is primarily written in Go. Its source is publicly available at https://github.com/douyu/jupiter, and it has 4,566 GitHub stars.