@@ -23,6 +23,7 @@ import (
23
23
"github.com/grafana/loki/pkg/logproto"
24
24
lokiflag "github.com/grafana/loki/pkg/util/flagext"
25
25
"github.com/prometheus/client_golang/prometheus"
26
+ "github.com/prometheus/client_golang/prometheus/promauto"
26
27
"github.com/prometheus/common/config"
27
28
"github.com/prometheus/common/model"
28
29
)
@@ -39,6 +40,20 @@ type ExternalLoggerLoki struct {
39
40
localLogger * zap.Logger
40
41
}
41
42
43
+ var (
44
+ lokiMessagesSent = promauto .NewCounter (
45
+ prometheus.CounterOpts {
46
+ Name : "wormhole_loki_messages_sent" ,
47
+ Help : "Total number of log messages posted to Loki" ,
48
+ })
49
+
50
+ lokiMessagesDropped = promauto .NewCounter (
51
+ prometheus.CounterOpts {
52
+ Name : "wormhole_loki_messages_dropped" ,
53
+ Help : "Total number of log messages dropped while posting to Loki" ,
54
+ })
55
+ )
56
+
42
57
func (logger * ExternalLoggerLoki ) log (time time.Time , message json.RawMessage , level zapcore.Level ) {
43
58
lokiLabels := logger .labels [level ]
44
59
@@ -56,7 +71,12 @@ func (logger *ExternalLoggerLoki) log(time time.Time, message json.RawMessage, l
56
71
Labels : lokiLabels ,
57
72
}
58
73
59
- logger .c .Chan () <- entry
74
+ select {
75
+ case logger .c .Chan () <- entry :
76
+ lokiMessagesSent .Inc ()
77
+ default :
78
+ lokiMessagesDropped .Inc ()
79
+ }
60
80
61
81
// A fatal error exits, which can cause us to lose messages. Flush everything.
62
82
if level == zapcore .FatalLevel {
0 commit comments