Skip to content

Commit 39220a6

Browse files
committed
initial commit.
1 parent 9286df2 commit 39220a6

File tree

7 files changed

+1772
-0
lines changed

7 files changed

+1772
-0
lines changed

Dockerfile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
FROM golang:1.15-alpine AS build-stage
2+
3+
RUN apk add --update make
4+
RUN mkdir -p /go/src/github.com/hypertrace/collector
5+
WORKDIR /go/src/github.com/hypertrace/collector
6+
7+
COPY . /go/src/github.com/hypertrace/collector
8+
9+
ARG GIT_COMMIT
10+
ARG VERSION
11+
12+
RUN make build
13+
14+
FROM alpine
15+
# Following folder conventions described in https://unix.stackexchange.com/a/11552
16+
RUN apk --update add ca-certificates
17+
RUN mkdir /usr/local/bin/hypertrace
18+
WORKDIR /usr/local/bin/hypertrace
19+
20+
COPY --from=build-stage /go/src/github.com/hypertrace/collector/collector .
21+
COPY default-config.yml /etc/opt/hypertrace/config.yml
22+
23+
EXPOSE 9411
24+
25+
ENTRYPOINT ./collector --config /etc/opt/hypertrace/config.yml

Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
BIN_NAME=xfiles
2+
3+
VERSION ?= dev
4+
GIT_HASH ?=$(shell git rev-parse HEAD)
5+
IMAGE_NAME := "hypertrace/collector"
6+
7+
build:
8+
go build -ldflags "-w -X main.GitHash=${GIT_HASH} -X main.Version=${VERSION}" ./cmd/collector
9+
10+
run:
11+
go run cmd/collector/main.go --config ./config.yml
12+
13+
package:
14+
docker build --build-arg VERSION=${VERSION} --build-arg GIT_COMMIT=$(GIT_COMMIT) -t $(IMAGE_NAME):${VERSION} -t $(IMAGE_NAME):latest .

cmd/collector/main.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log"
6+
7+
"go.opentelemetry.io/collector/component"
8+
"go.opentelemetry.io/collector/component/componenterror"
9+
"go.opentelemetry.io/collector/service"
10+
"go.opentelemetry.io/collector/service/defaultcomponents"
11+
)
12+
13+
func main() {
14+
factories, err := components()
15+
if err != nil {
16+
log.Fatalf("failed to build default components: %v", err)
17+
}
18+
19+
info := component.ApplicationStartInfo{
20+
ExeName: "collector",
21+
LongName: "Hypertrace Collector",
22+
Version: Version,
23+
GitHash: GitHash,
24+
}
25+
26+
if err := run(service.Parameters{ApplicationStartInfo: info, Factories: factories}); err != nil {
27+
log.Fatal(err)
28+
}
29+
}
30+
31+
func components() (component.Factories, error) {
32+
var errs []error
33+
factories, err := defaultcomponents.Components()
34+
if err != nil {
35+
return component.Factories{}, err
36+
}
37+
38+
return factories, componenterror.CombineErrors(errs)
39+
}
40+
41+
func run(params service.Parameters) error {
42+
app, err := service.New(params)
43+
if err != nil {
44+
return fmt.Errorf("failed to construct the application: %w", err)
45+
}
46+
47+
err = app.Run()
48+
if err != nil {
49+
return fmt.Errorf("application run finished with error: %w", err)
50+
}
51+
52+
return nil
53+
}

cmd/collector/version.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package main
2+
3+
// GitHash that was compiled. This will be filled in by the compiler.
4+
// Version number that is being run at the moment.
5+
var (
6+
GitHash string
7+
Version string
8+
)

default-config.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
extensions:
2+
health_check:
3+
pprof:
4+
endpoint: 0.0.0.0:1777
5+
zpages:
6+
endpoint: 0.0.0.0:55679
7+
8+
receivers:
9+
otlp:
10+
protocols:
11+
grpc:
12+
http:
13+
14+
opencensus:
15+
16+
# Collect own metrics
17+
prometheus:
18+
config:
19+
scrape_configs:
20+
- job_name: "otel-collector"
21+
scrape_interval: 10s
22+
static_configs:
23+
- targets: ["0.0.0.0:8888"]
24+
25+
jaeger:
26+
protocols:
27+
grpc:
28+
thrift_binary:
29+
thrift_compact:
30+
thrift_http:
31+
32+
zipkin:
33+
34+
processors:
35+
batch:
36+
37+
exporters:
38+
logging:
39+
logLevel: debug
40+
41+
service:
42+
pipelines:
43+
traces:
44+
receivers: [otlp, opencensus, jaeger, zipkin]
45+
processors: [batch]
46+
exporters: [logging]
47+
48+
metrics:
49+
receivers: [otlp, opencensus, prometheus]
50+
processors: [batch]
51+
exporters: [logging]
52+
53+
extensions: [health_check, pprof, zpages]

go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module github.com/hypertrace/collector
2+
3+
go 1.15
4+
5+
require go.opentelemetry.io/collector v0.14.0

0 commit comments

Comments
 (0)