82 lines
2.4 KiB
Go
82 lines
2.4 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package graph // import "go.opentelemetry.io/collector/service/internal/graph"
|
|
|
|
import (
|
|
"net/http"
|
|
"sort"
|
|
|
|
"go.opentelemetry.io/collector/service/internal/zpages"
|
|
)
|
|
|
|
const (
|
|
|
|
// URL Params
|
|
zPipelineName = "pipelinenamez"
|
|
zComponentName = "componentnamez"
|
|
zComponentKind = "componentkindz"
|
|
)
|
|
|
|
func (g *Graph) HandleZPages(w http.ResponseWriter, r *http.Request) {
|
|
qValues := r.URL.Query()
|
|
pipelineName := qValues.Get(zPipelineName)
|
|
componentName := qValues.Get(zComponentName)
|
|
componentKind := qValues.Get(zComponentKind)
|
|
|
|
w.Header().Set("Content-Type", "text/html; charset=utf-8")
|
|
zpages.WriteHTMLPageHeader(w, zpages.HeaderData{Title: "builtPipelines"})
|
|
|
|
sumData := zpages.SummaryPipelinesTableData{}
|
|
sumData.Rows = make([]zpages.SummaryPipelinesTableRowData, 0, len(g.pipelines))
|
|
for c, p := range g.pipelines {
|
|
recvIDs := make([]string, 0, len(p.receivers))
|
|
for _, c := range p.receivers {
|
|
switch n := c.(type) {
|
|
case *receiverNode:
|
|
recvIDs = append(recvIDs, n.componentID.String())
|
|
case *connectorNode:
|
|
recvIDs = append(recvIDs, n.componentID.String()+" (connector)")
|
|
}
|
|
}
|
|
procIDs := make([]string, 0, len(p.processors))
|
|
for _, c := range p.processors {
|
|
procIDs = append(procIDs, c.(*processorNode).componentID.String())
|
|
}
|
|
exprIDs := make([]string, 0, len(p.exporters))
|
|
for _, c := range p.exporters {
|
|
switch n := c.(type) {
|
|
case *exporterNode:
|
|
exprIDs = append(exprIDs, n.componentID.String())
|
|
case *connectorNode:
|
|
exprIDs = append(exprIDs, n.componentID.String()+" (connector)")
|
|
}
|
|
}
|
|
|
|
sumData.Rows = append(sumData.Rows, zpages.SummaryPipelinesTableRowData{
|
|
FullName: c.String(),
|
|
InputType: c.Signal().String(),
|
|
MutatesData: p.capabilitiesNode.getConsumer().Capabilities().MutatesData,
|
|
Receivers: recvIDs,
|
|
Processors: procIDs,
|
|
Exporters: exprIDs,
|
|
})
|
|
}
|
|
sort.Slice(sumData.Rows, func(i, j int) bool {
|
|
return sumData.Rows[i].FullName < sumData.Rows[j].FullName
|
|
})
|
|
zpages.WriteHTMLPipelinesSummaryTable(w, sumData)
|
|
|
|
if pipelineName != "" && componentName != "" && componentKind != "" {
|
|
fullName := componentName
|
|
if componentKind == "processor" {
|
|
fullName = pipelineName + "/" + componentName
|
|
}
|
|
zpages.WriteHTMLComponentHeader(w, zpages.ComponentHeaderData{
|
|
Name: componentKind + ": " + fullName,
|
|
})
|
|
// TODO: Add config + status info.
|
|
}
|
|
zpages.WriteHTMLPageFooter(w)
|
|
}
|