This commit is contained in:
@@ -25,6 +25,10 @@ type Metrics struct {
|
||||
glpiOK bool
|
||||
ollamaOK bool
|
||||
knowledgeDocs int
|
||||
glpiKBOK bool
|
||||
glpiKBDocs int
|
||||
glpiKBLastSync time.Time
|
||||
glpiKBLastError string
|
||||
}
|
||||
|
||||
func New() *Metrics { return &Metrics{Started: time.Now()} }
|
||||
@@ -43,6 +47,19 @@ func (m *Metrics) Health() (bool, bool) {
|
||||
}
|
||||
func (m *Metrics) SetKnowledgeDocs(n int) { m.mu.Lock(); m.knowledgeDocs = n; m.mu.Unlock() }
|
||||
func (m *Metrics) KnowledgeDocs() int { m.mu.RLock(); defer m.mu.RUnlock(); return m.knowledgeDocs }
|
||||
func (m *Metrics) SetGLPIKBStatus(ok bool, docs int, lastSync time.Time, lastErr string) {
|
||||
m.mu.Lock()
|
||||
m.glpiKBOK = ok
|
||||
m.glpiKBDocs = docs
|
||||
m.glpiKBLastSync = lastSync
|
||||
m.glpiKBLastError = lastErr
|
||||
m.mu.Unlock()
|
||||
}
|
||||
func (m *Metrics) GLPIKBStatus() (bool, int, time.Time, string) {
|
||||
m.mu.RLock()
|
||||
defer m.mu.RUnlock()
|
||||
return m.glpiKBOK, m.glpiKBDocs, m.glpiKBLastSync, m.glpiKBLastError
|
||||
}
|
||||
|
||||
func (m *Metrics) WritePrometheus(w io.Writer) {
|
||||
g, o := m.Health()
|
||||
@@ -63,4 +80,7 @@ func (m *Metrics) WritePrometheus(w io.Writer) {
|
||||
fmt.Fprintf(w, "# TYPE glpi_agent_glpi_up gauge\nglpi_agent_glpi_up %d\n", boolf(g))
|
||||
fmt.Fprintf(w, "# TYPE glpi_agent_ollama_up gauge\nglpi_agent_ollama_up %d\n", boolf(o))
|
||||
fmt.Fprintf(w, "# TYPE glpi_agent_knowledge_documents gauge\nglpi_agent_knowledge_documents %d\n", m.KnowledgeDocs())
|
||||
kbOK, kbDocs, _, _ := m.GLPIKBStatus()
|
||||
fmt.Fprintf(w, "# TYPE glpi_agent_glpi_kb_up gauge\nglpi_agent_glpi_kb_up %d\n", boolf(kbOK))
|
||||
fmt.Fprintf(w, "# TYPE glpi_agent_glpi_kb_documents gauge\nglpi_agent_glpi_kb_documents %d\n", kbDocs)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user