![Maven Central Adds Sigstore Signature Validation](https://cdn.sanity.io/images/cgdhsj6q/production/7da3bc8a946cfb5df15d7fcf49767faedc72b483-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
github.com/kiali/k-charted
Dashboards and Charts library for Kubernetes, to use with MonitoringDashboard
custom resources as documented in Kiali.
K-Charted is used in Kiali to fetch Prometheus metrics and display them in a dashboard
It consists in a Go library and a TypeScript / React library. The Go code:
The TypeScript code:
Full-minimal working example: https://github.com/jotak/k-charted-server
This code must run in-cluster.
Using the provided HTTP handler:
import (
kconf "github.com/kiali/k-charted/config"
kxconf "github.com/kiali/k-charted/config/extconfig"
klog "github.com/kiali/k-charted/log"
khttp "github.com/kiali/k-charted/http"
// ...
)
var cfg = kconf.Config{
GlobalNamespace: "default",
NamespaceLabel: "namespace",
Prometheus: kxconf.PrometheusConfig{
URL: "http://prometheus",
},
}
var logger = klog.LogAdapter{
Errorf: log.Errorf,
Tracef: log.Tracef,
}
func getDashboard(w http.ResponseWriter, r *http.Request) {
khttp.DashboardHandler(r.URL.Query(), mux.Vars(r), w, cfg, logger)
}
func SetRoute() {
r := mux.NewRouter()
r.HandleFunc("/api/namespaces/{namespace}/dashboards/{dashboard}", getDashboard)
}
Or alternatively, calling the dashboards service instead:
import (
kbus "github.com/kiali/k-charted/business"
kconf "github.com/kiali/k-charted/config"
kxconf "github.com/kiali/k-charted/config/extconfig"
klog "github.com/kiali/k-charted/log"
)
var cfg = kconf.Config{
GlobalNamespace: "default",
NamespaceLabel: "namespace",
Prometheus: kxconf.PrometheusConfig{
URL: "http://prometheus",
},
}
var logger = klog.LogAdapter{
Errorf: log.Errorf,
Tracef: log.Tracef,
}
// ...
dashboardsService := kbus.NewDashboardsService(cfg, logger)
dashboard, err := dashboardsService.GetDashboard(model.DashboardQuery{Namespace: "my-namespace"}, "my-dashboard-name")
GlobalNamespace: namespace that holds default dashboards. When a dashboard is looked for in a given namespace, when not found and if GlobalNamespace is defined, it will be searched then in that GlobalNamespace. Undefined by default.
NamespaceLabel: the name of the Prometheus label that holds namespace. namespace
by default.
Prometheus: Prometheus configuration.
Grafana: Grafana configuration. This is optional, only needed if external links to Grafana dashboards have been defined within the MonitoringDashboards custom resources in use.
PodsLoader: optional pods supplier function, it enables reading dashboard names from pods annotations.
It binds any logging function to be used in K-Charted. It can be omitted, in which case nothing will be logged.
Import @kiali/k-charted-pf4
. Example with axios
:
axios.get(`/namespaces/${this.state.namespace}/dashboards/${this.state.dashboardName}`).then(rs => {
this.setState({ dashboard: rs.data });
});
render() {
if (this.state.dashboard) {
return (<Dashboard dashboard={this.state.dashboard} />)
}
return (<>Empty</>);
}
Check out MetricsOption.ts
file to see how the dashboard can be tuned (filtering by labels, aggregations, etc.)
Install golangci-lint, example with v1.16.0:
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin v1.16.0
To build/lint/test the backend, run:
make go
For the frontend, run:
make pf4
One solution to easily work and test with Kiali is to use go mod replace directive, and npm linking.
Assuming the repos are located within your $GOPATH (but that's not mandatory, just adapt the instructions below), run:
cd ${GOPATH}/src/github.com/kiali/kiali
go mod edit -replace github.com/kiali/k-charted=../k-charted
Similarly, you can use yarn link
for the web UI side. Assuming your kiali-ui is in /work/kiali-ui
:
cd ${GOPATH}/src/github.com/kiali/k-charted/web/pf4
yarn link
cd /work/kiali-ui
yarn link @kiali/k-charted-pf4
After testing, you should remove the link:
cd ${GOPATH}/src/github.com/kiali/kiali
go mod edit -dropreplace github.com/kiali/k-charted
cd /work/kiali-ui
yarn unlink @kiali/k-charted-pf4
You're welcome!
If you want to chat, come to the #kiali channel on IRC/Freenode.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.