• Stars
    star
    328
  • Rank 128,352 (Top 3 %)
  • Language
    Shell
  • License
    Mozilla Public Li...
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An aggregating push gateway for Prometheus

🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨

Maintenance of project has moved No more contributions or issues are being accepted in this repo. If you woud like to send a PR or file a bug please go here:

https://github.com/zapier/prom-aggregation-gateway

🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨

Prometheus Aggregation Gateway

Prometheus Aggregation Gateway is a aggregating push gateway for Prometheus. As opposed to the official Prometheus Pushgateway, this service aggregates the sample values it receives.

  • Counters where all labels match are added up.
  • Histograms are added up; if bucket boundaries are mismatched then the result has the union of all buckets and counts are given to the lowest bucket that fits.
  • Gauges are also added up (but this may not make any sense)
  • Summaries are discarded.

How to use

Send metrics in Prometheus format to /metrics/

E.g. if you have the program running locally:

echo 'http_requests_total{method="post",code="200"} 1027' | curl --data-binary @- http://localhost/metrics/

Now you can push your metrics using your favorite Prometheus client.

E.g. in Python using prometheus/client_python:

from prometheus_client import CollectorRegistry, Counter, push_to_gateway
registry = CollectorRegistry()
counter = Counter('some_counter', "A counter", registry=registry)
counter.inc()
push_to_gateway('localhost', job='my_job_name', registry=registry)

Then have your Prometheus scrape metrics at /metrics.

Ready-built images

Available on DockerHub weaveworks/prom-aggregation-gateway

Comparison to Prometheus Pushgateway

According to https://prometheus.io/docs/practices/pushing/:

The Pushgateway never forgets series pushed to it and will expose them to Prometheus forever...

The latter point is especially relevant when multiple instances of a job differentiate their metrics in the Pushgateway via an instance label or similar.

This restriction makes the Prometheus pushgateway inappropriate for the usecase of accepting metrics from a client-side web app, so we created this one to aggregate counters from multiple senders.

Prom-aggregation-gateway presents a similar API, but does not attempt to be a drop-in replacement.

JS Client Library

See https://github.com/weaveworks/promjs/ for a JS client library for Prometheus that can be used from within a web app.

Getting Help

If you have any questions about, feedback for or problems with prom-aggregation-gateway:

Weaveworks follows the CNCF Code of Conduct. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a Weaveworks project maintainer, or Alexis Richardson ([email protected]).

Your feedback is always welcome!

More Repositories

1

weave

Simple, resilient multi-host containers networking and more.
Go
6,618
star
2

scope

Monitoring, visualisation & management for Docker & Kubernetes
Go
5,854
star
3

eksctl

The official CLI for Amazon EKS
Go
4,493
star
4

ignite

Ignite a Firecracker microVM
Go
3,486
star
5

grafanalib

Python library for building Grafana dashboards
Python
1,872
star
6

footloose

Container Machines - Containers that look like Virtual Machines
Go
1,589
star
7

awesome-gitops

A curated list for awesome GitOps resources
1,504
star
8

kubediff

Kubediff: a tool for Kubernetes to show differences between running state and version controlled configuration.
Python
1,182
star
9

tf-controller

A GitOps Terraform controller for Kubernetes
Go
1,002
star
10

weave-gitops

Weave GitOps provides insights into your application deployments, and makes continuous delivery with GitOps easier to adopt and scale across your teams.
MDX
914
star
11

mesh

A tool for building distributed applications.
Go
882
star
12

tcptracer-bpf

eBPF program using kprobes to trace TCP events without run-time compilation dependencies
Shell
409
star
13

wksctl

Open Source Weaveworks Kubernetes System
Go
396
star
14

wks-quickstart-firekube

Example configuration to create Kubernetes clusters powered by ignite and gitops
Shell
343
star
15

vscode-gitops-tools

GitOps Visual Studio Code Extension
TypeScript
224
star
16

weave-gitops-enterprise

This repo provides the enterprise level features for the weave-gitops product, including CAPI cluster creation and team workspaces.
Go
160
star
17

promjs

TypeScript
151
star
18

common

Libraries used in multiple Weave projects
Go
129
star
19

go-odp

A Go library to control the Open vSwitch in-kernel datapath
Go
73
star
20

libgitops

A Go library for implementing GitOps, used by Ignite
Go
66
star
21

terraform-kubernetes

Terraform module for provisioning AWS resources to run a Kubernetes cluster
HCL
61
star
22

eks-quickstart-app-dev

Example flux manifests for eksctl gitops
56
star
23

cluster-api-provider-existinginfra

Manage existing infrastructure with Cluster API using this provider.
Go
45
star
24

build-tools

Collection of build & test tools shared by various Weaveworks projects
Shell
44
star
25

flintlock

Lock, Stock, and Two Smoking MicroVMs. Create and manage the lifecycle of MicroVMs backed by containerd.
Go
41
star
26

kubernetes-ami

A simple AMI and CloudFormation for launching Kubernetes on AWS
Shell
40
star
27

promrus

Logrus hook to expose Prometheus metrics.
Go
34
star
28

weaveworks-backstage

Backstage app and Plugins for WeaveWorks and Flux.
TypeScript
33
star
29

policy-agent

Weaveworks Policy Agent
Go
32
star
30

ui-components

A collection of UI components that are shared across Weaveworks projects
JavaScript
30
star
31

integrations

Weave Third-Party Integrations
Shell
26
star
32

prometheus_sql_exporter

A service that exposes user-specified SQL queries on a prometheus metrics endpoint
Go
26
star
33

cortex-dashboards

Grafana dashboards for Cortex
Python
22
star
34

guestbook-gitops

GitOps with GitHub Actions to ECR and EKS
Makefile
20
star
35

fk-covid

Firekube distro with COVID-Net ML
Shell
18
star
36

multienv-example

Example of how to manage configuration for multiple Kubernetes clusters e.g., dev, staging, production
14
star
37

profiles

GitOps native package management
Go
11
star
38

mlops-profile

Kubeflow-based Machine Learning Profile
10
star
39

launcher

Weave Cloud Launcher
Go
10
star
40

eks-appmesh-profile

AWS App Mesh eksctl profile
10
star
41

docker-ansible

Shell
9
star
42

homebrew-tap

Ruby
9
star
43

gitopssets-controller

Manages the GitOpsSet CRDs.
Go
9
star
44

weavecloud-browser-extension

Browser extension to integrate Grafana dashboards with Weave Cloud
JavaScript
9
star
45

billing-client

A client library for sending usage data to the billing system.
Go
7
star
46

pctl

CLI for interacting with profiles
Go
7
star
47

flux-example

Small example of Kubernetes config, for the purpose of illustrating how to use Flux
Go
7
star
48

wordepress

Tool support enabling hosting of technical documentation in WordPress
Go
7
star
49

MoodyKubie

Face detection and emotion classification, in Docker containers, on Kubernetes, running on CubieBoard (ARM).
JavaScript
7
star
50

flux-adapter

Connecting fluxd to Weave Cloud
Go
6
star
51

image-builder

Image building for Weaveworks projects.
Dockerfile
6
star
52

covid-ml-profile

FireKube and EKS Machine Learning Profile for the fk-covid Project
5
star
53

cluster-controller

cluster-controller for Weave GitOps Enterprise
Go
5
star
54

alertdiff

Expose metrics detailing differences between two alert sources
Haskell
4
star
55

flux2-openshift

OperatorHub submission repo for Flux2
JavaScript
4
star
56

weave-gitops-quickstart

Quickstart resources to get you started with Weave GitOps Enterprise
4
star
57

cluster-bootstrap-controller

bootstrap-controller for Weave Gitops Enterprise
Go
4
star
58

profiles-catalog

Profiles for Weave GitOps
Makefile
4
star
59

gitops-toolkit-demo

GoTK Demo
3
star
60

schemer

Library to generate JSON schemas for your docs
Go
3
star
61

weave-gitops-scenarios

Various test scenarios for weave-gitops
Python
3
star
62

wkp-docs

Home of the Weave Kubernetes Platform technical documentation.
JavaScript
3
star
63

policy-library

The policy-as-code library
Open Policy Agent
3
star
64

cluster-api-provider-firecracker

CAPF - A Cluster API Provider for Firecracker
2
star
65

backstage-sockshop

Sockshop Components for Backstage
2
star
66

weave-gitops-private

This is for tracking weaveworks internal information on weave-gitops. Will include issues, internal roadmaps, etc.
Shell
2
star
67

service

☁️ Images for Weave Cloud (R) (TM) (C) ☁️
Go
2
star
68

clusters-config

Configuration for engineering's ephemeral clusters
Shell
2
star
69

weave-gitops-enterprise-tf-aws-provider

GitOps-first Terraform for Weave GitOps enterprise customers to use.
HCL
1
star
70

weave-gitops-ssp-addon

Weave GitOps AddOn for SSP EKS Quickstart
TypeScript
1
star
71

buildpack-profile

1
star
72

weave-assured-flux

Weaveworks Assured Flux
Shell
1
star
73

cluster-reflector-controller

Automatically "reflect" existing AKS/EKS/GKE clusters into Weave GitOps Enterprise.
Go
1
star
74

go-git-providers

A collection of clients for different git providers like Github
Go
1
star
75

weave-action

Weaveworks GitHub Actions
1
star
76

homebrew-weave-gitops

The repository contains only the brew formula for installing weave-gitops
Ruby
1
star
77

templates-controller

Manages the GitopsTemplates CRDs
Go
1
star
78

flux-shard-controller

Easily spread load across replicated kustomize, source, helm and notification controllers
Go
1
star
79

weave-gitops-profile-examples

These profiles and profile index can be used as examples of how to construct a Weave GitOps Enterprise profile and repository.
Smarty
1
star
80

corp-gh-org-controller

A Kubernetes controller to create and manage GitHub Enterprise Organisations.
Go
1
star
81

microvm-scheduler-api

The API types for the Microvm Scheduler
1
star
82

pipeline-controller

This repository contains the Pipeline CRD and associated controller for Weave GitOps Enterprise.
Go
1
star
83

weaveworks-backstage-enterprise

Weaveworks enterprise backstage plugins
TypeScript
1
star
84

progressive-delivery

This repository contains the progressive delivery API handlers that Weave GitOps Enterprise serves.
Go
1
star
85

weave-gitops-clusters

Configuration for the staging k8s clusters used by weave-gitops.
HCL
1
star
86

weave-policy-validator

Weaveworks Infrastructure as Code Validator
Go
1
star
87

sa-demos

This repository is dealing with the Weave GitOps demos and demo environments. Please use it to file and update issues that you are seeing. You can also put your demo guides and demo scripts here.
Shell
1
star