skycfg
prometheus-operator
skycfg | prometheus-operator | |
---|---|---|
6 | 39 | |
634 | 8,751 | |
0.5% | 0.7% | |
3.9 | 9.7 | |
about 1 month ago | 9 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
skycfg
-
Jsonnet – The Data Templating Language
I can definitely sympathize here - in every context, just straight JSON/YAML configuration seems never expressive enough, but the tooling created in response always seems to come with sharp edges.
Here are some of the things I appreciate about Jsonnet:
- It evals to JSON, so even though the semantics of the language are confusing, it is reasonably easy to eval and iterate on some Jsonnet until it emits what one is expecting - and after that, it's easy to create some validation tests so that regressions don't occur.
- It takes advantage of the fact that JSON is a lowest-common-denominator for many data serialization formats. YAML is technically a superset of JSON, so valid JSON is also valid YAML. Proto3 messages have a canonical JSON representation, so JSON can also adhere to protobuf schemas. This covers most "serialized data structure" use-cases I typically encounter (TOML and HCL are outliers, but many tools that accept those also accept equivalent JSON). This means that with a little bit of build-tool duct-taping, Jsonnet can be used to generate configurations for a wide variety of tooling.
- Jsonnet is itself a superset of JSON - so those more willing to write verbose JSON than learn Jsonnet can still write JSON that someone else can import/use elsewhere. Using Jsonnet does not preclude falling back to JSON.
- The tooling works well - installing the Jsonnet VSCode plugin brings in a code formatter that does an excellent job, and rules_jsonnet[0] provides good bazel integration, if that's your thing.
I'm excited about Jsonnet because now as long as other tool authors decide to consume JSON, I can more easily abstract away their verbosity without writing a purpose-built tool (looking at you, Kubernetes) without resorting to text templating (ahem Helm). Jsonnet might just be my "one JSON-generation language to rule them all"!
---
Though if Starlark is your thing, do checkout out skycfg[1]
[0] - https://github.com/bazelbuild/rules_jsonnet
[1] - https://github.com/stripe/skycfg
-
The Dhall Configuration Language
Can you say more about what GCL does better than all of the open source ones?
Anecdotally, I've heard a lot of GCL horror stories, and many Xooglers have chosen to create things like Jsonnet or Skycfg (https://github.com/stripe/skycfg) instead.
- YAML: It's Time to Move On
- Opinion-driven design
-
Migrating Millions of Concurrent WebSockets to Envoy
If you’re looking at other solutions check out https://github.com/stripe/skycfg It works with Envoy and lots of other things that support protobuf configs
-
Yaml Is The Worst Thing Ever Created K8s Should
This is good and there are several other options like https://github.com/stripe/skycfg#why-use-skycfg to add full language support (using Go or python for ex) to configurations.
prometheus-operator
-
Smart-Cash project -Adding monitoring to EKS using Prometheus operator
The project repository for Prometheus-operator can be found here, The repo defines the CRDs and the controller. You can follow this documentation for the installation. which will require the creation of metrics exporters, node exporters, scrape configurations, etc.
-
Ask HN: Best solution for homelab service monitoring?
Personally I use kubernetes, k3s is kind of lightweight, with the Prometheus operator.
https://k3s.io/
https://prometheus-operator.dev/
Kubernetes is not for everyone and is far from perfect but you already use Docker and you seem to seek many features offered by Kubernetes.
-
Opinions on using the Prometheus Operator vs. installing yourself?
I see that the operator is a community-run project. Does anybody have any experience (positive or negative) on running the operator itself? I wonder if it is more for multi-tenant Prometheus. For single tenant Prometheus collection, I guess the big gain is abstracting scrape config into ServiceMonitor and PodMonitor resources? Is there anything else that this makes much better?
-
Prometheus node exporter and cadvisor to send metrics to central prometheus cluster
But in all honesty if you’re on k8s you’re probably best served by the Prometheus operator. It’ll give you all that and more, easily.
-
Overcommitted cpu
Try some monitoring.
- What's your favorite monitoring stack?
-
Writing a Kubernetes Operator
It’s a common pattern [1] how else can users override the child objects you’re controller creates?
1 https://github.com/prometheus-operator/prometheus-operator/b...
-
Modify Prometheus rules when installed via Helm chart
The Prometheus operator is this one https://github.com/prometheus-operator/prometheus-operator
-
How do I stop my apps from being killed in k8s?
At a minimum, you want to look at your metrics using the Prometheus Operator. You can write alerts for resource requests.
-
Spring Boot monitoring with Prometheus Operator
Prometheus Operator is an independent project from the Prometheus project. I know, it can lead to confusion. In the official README you can find short comparison. Basically, Prometheus Operator does what an operator should do - provides Kubernetes native deployment and management of Prometheus and related monitoring components like Grafana or Alert Manager.
What are some alternatives?
jsonnet - Jsonnet - The data templating language
kube-prometheus - Use Prometheus to monitor Kubernetes and applications running on Kubernetes
isopod - An expressive DSL and framework for Kubernetes configuration without YAML
mimir - Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.
nestedtext - Human readable and writable data interchange format
kubernetes-mixin - A set of Grafana dashboards and Prometheus alerts for Kubernetes.
ron - Rusty Object Notation
kuberhealthy - A Kubernetes operator for running synthetic checks as pods. Works great with Prometheus!
rules_jsonnet - Jsonnet rules for Bazel
helm-charts - Prometheus community Helm charts
starlark - Starlark Language
prometheus - The Prometheus monitoring system and time series database.