diff --git a/op-ufm/op-ufm/Dockerfile b/op-ufm/op-ufm/Dockerfile index a31e965..ad87f21 100644 --- a/op-ufm/op-ufm/Dockerfile +++ b/op-ufm/op-ufm/Dockerfile @@ -6,7 +6,7 @@ ARG GITVERSION=docker RUN apk add make jq git gcc musl-dev linux-headers -COPY ./ufm /app +COPY ./op-ufm /app WORKDIR /app @@ -14,17 +14,16 @@ RUN make ufm FROM alpine:3.18 -COPY ./ufm/entrypoint.sh /bin/entrypoint.sh +COPY --from=builder /app/entrypoint.sh /bin/entrypoint.sh +COPY --from=builder /app/bin/ufm /bin/ufm RUN apk update && \ apk add ca-certificates && \ chmod +x /bin/entrypoint.sh -EXPOSE 8080 - VOLUME /etc/ufm -COPY --from=builder /app/bin/op-ufm /bin/op-ufm +EXPOSE 8080 ENTRYPOINT ["/bin/entrypoint.sh"] -CMD ["/bin/op-ufm", "/etc/op-ufm/config.toml"] +CMD ["/bin/ufm", "/etc/ufm/config.toml"] diff --git a/op-ufm/op-ufm/Makefile b/op-ufm/op-ufm/Makefile new file mode 100644 index 0000000..8e73ece --- /dev/null +++ b/op-ufm/op-ufm/Makefile @@ -0,0 +1,21 @@ +LDFLAGSSTRING +=-X main.GitCommit=$(GITCOMMIT) +LDFLAGSSTRING +=-X main.GitDate=$(GITDATE) +LDFLAGSSTRING +=-X main.GitVersion=$(GITVERSION) +LDFLAGS := -ldflags "$(LDFLAGSSTRING)" + +ufm: + go build -v $(LDFLAGS) -o ./bin/ufm ./cmd/ufm +.PHONY: ufm + +fmt: + go mod tidy + gofmt -w . +.PHONY: fmt + +test: + go test -race -v ./... +.PHONY: test + +lint: + go vet ./... +.PHONY: test diff --git a/op-ufm/op-ufm/cmd/main.go b/op-ufm/op-ufm/cmd/ufm/main.go similarity index 100% rename from op-ufm/op-ufm/cmd/main.go rename to op-ufm/op-ufm/cmd/ufm/main.go diff --git a/op-ufm/op-ufm/pkg/metrics/metrics.go b/op-ufm/op-ufm/pkg/metrics/metrics.go index ea0e973..8f92411 100644 --- a/op-ufm/op-ufm/pkg/metrics/metrics.go +++ b/op-ufm/op-ufm/pkg/metrics/metrics.go @@ -18,10 +18,10 @@ const ( var ( Debug bool - errorsTotal = promauto.NewCounterVec(prometheus.CounterOpts{ + errorsTotal = promauto.NewGaugeVec(prometheus.GaugeOpts{ Namespace: MetricsNamespace, Name: "errors_total", - Help: "Count of errors.", + Help: "Count of errors", }, []string{ "provider", "error", @@ -119,7 +119,7 @@ func RecordGasUsed(provider string, val uint64) { log.Debug("metric add", "m", "gas_used", "provider", provider, "val", val) } - gasUsed.WithLabelValues(provider).Add(float64(val)) + gasUsed.WithLabelValues(provider).Set(float64(val)) } func RecordFirstSeenLatency(providerSource string, providerSeen string, latency time.Duration) { diff --git a/op-ufm/op-ufm/pkg/provider/heartbeat.go b/op-ufm/op-ufm/pkg/provider/heartbeat.go index 17d43f2..163aaa4 100644 --- a/op-ufm/op-ufm/pkg/provider/heartbeat.go +++ b/op-ufm/op-ufm/pkg/provider/heartbeat.go @@ -22,7 +22,7 @@ func (p *Provider) Heartbeat(ctx context.Context) { expectedTransactions := make([]*TransactionState, 0, len(p.txPool.Transactions)) alreadySeen := 0 for _, st := range p.txPool.Transactions { - if st.ProviderSentTo == p.name { + if st.ProviderSource == p.name { continue } if _, exist := st.SeenBy[p.name]; exist { @@ -59,16 +59,16 @@ func (p *Provider) Heartbeat(ctx context.Context) { latency := time.Since(st.SentAt) if st.FirstSeen.IsZero() { st.FirstSeen = time.Now() - metrics.RecordFirstSeenLatency(st.ProviderSentTo, p.name, latency) + metrics.RecordFirstSeenLatency(st.ProviderSource, p.name, latency) log.Info("transaction first seen", "hash", hash, "firstSeenLatency", latency, - "providerSource", st.ProviderSentTo, + "providerSource", st.ProviderSource, "providerSeen", p.name) } if _, exist := st.SeenBy[p.name]; !exist { st.SeenBy[p.name] = time.Now() - metrics.RecordProviderToProviderLatency(st.ProviderSentTo, p.name, latency) + metrics.RecordProviderToProviderLatency(st.ProviderSource, p.name, latency) } st.M.Unlock() diff --git a/op-ufm/op-ufm/pkg/provider/roundtrip.go b/op-ufm/op-ufm/pkg/provider/roundtrip.go index 406b8c6..4242d45 100644 --- a/op-ufm/op-ufm/pkg/provider/roundtrip.go +++ b/op-ufm/op-ufm/pkg/provider/roundtrip.go @@ -86,7 +86,7 @@ func (p *Provider) RoundTrip(ctx context.Context) { p.txPool.M.Lock() p.txPool.Transactions[txHash.Hex()] = &TransactionState{ Hash: txHash, - ProviderSentTo: p.name, + ProviderSource: p.name, SentAt: sentAt, SeenBy: make(map[string]time.Time), } diff --git a/op-ufm/op-ufm/pkg/provider/tx_pool.go b/op-ufm/op-ufm/pkg/provider/tx_pool.go index c21c994..5b28b34 100644 --- a/op-ufm/op-ufm/pkg/provider/tx_pool.go +++ b/op-ufm/op-ufm/pkg/provider/tx_pool.go @@ -25,7 +25,7 @@ type TransactionState struct { M sync.Mutex SentAt time.Time - ProviderSentTo string + ProviderSource string FirstSeen time.Time