Add posture checks metrics report (#1603)

This commit is contained in:
Maycon Santos 2024-02-21 15:16:43 +01:00 committed by GitHub
parent 8d9e1fed5f
commit d65602f904
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 65 additions and 25 deletions

View File

@ -174,6 +174,8 @@ func (w *Worker) generateProperties() properties {
rules int rules int
rulesProtocol map[string]int rulesProtocol map[string]int
rulesDirection map[string]int rulesDirection map[string]int
rulesWithSrcPostureChecks int
postureChecks int
groups int groups int
routes int routes int
routesWithRGGroups int routesWithRGGroups int
@ -219,7 +221,12 @@ func (w *Worker) generateProperties() properties {
rulesDirection["oneway"]++ rulesDirection["oneway"]++
} }
} }
if len(policy.SourcePostureChecks) > 0 {
rulesWithSrcPostureChecks++
} }
}
postureChecks += len(account.PostureChecks)
for _, user := range account.Users { for _, user := range account.Users {
if user.IsServiceUser { if user.IsServiceUser {
@ -286,6 +293,8 @@ func (w *Worker) generateProperties() properties {
metricsProperties["active_peers_last_day"] = activePeersLastDay metricsProperties["active_peers_last_day"] = activePeersLastDay
metricsProperties["user_peers"] = userPeers metricsProperties["user_peers"] = userPeers
metricsProperties["rules"] = rules metricsProperties["rules"] = rules
metricsProperties["rules_with_src_posture_checks"] = rulesWithSrcPostureChecks
metricsProperties["posture_checks"] = postureChecks
metricsProperties["groups"] = groups metricsProperties["groups"] = groups
metricsProperties["routes"] = routes metricsProperties["routes"] = routes
metricsProperties["routes_with_routing_groups"] = routesWithRGGroups metricsProperties["routes_with_routing_groups"] = routesWithRGGroups

View File

@ -6,6 +6,7 @@ import (
nbdns "github.com/netbirdio/netbird/dns" nbdns "github.com/netbirdio/netbird/dns"
"github.com/netbirdio/netbird/management/server" "github.com/netbirdio/netbird/management/server"
nbpeer "github.com/netbirdio/netbird/management/server/peer" nbpeer "github.com/netbirdio/netbird/management/server/peer"
"github.com/netbirdio/netbird/management/server/posture"
"github.com/netbirdio/netbird/route" "github.com/netbirdio/netbird/route"
) )
@ -62,6 +63,7 @@ func (mockDatasource) GetAllAccounts() []*server.Account {
Protocol: server.PolicyRuleProtocolTCP, Protocol: server.PolicyRuleProtocolTCP,
}, },
}, },
SourcePostureChecks: []string{"1"},
}, },
}, },
Routes: map[string]*route.Route{ Routes: map[string]*route.Route{
@ -70,6 +72,26 @@ func (mockDatasource) GetAllAccounts() []*server.Account {
PeerGroups: make([]string, 1), PeerGroups: make([]string, 1),
}, },
}, },
PostureChecks: []*posture.Checks{
{
ID: "1",
Name: "test",
Checks: posture.ChecksDefinition{
NBVersionCheck: &posture.NBVersionCheck{
MinVersion: "0.0.1",
},
},
},
{
ID: "2",
Name: "tes2",
Checks: posture.ChecksDefinition{
NBVersionCheck: &posture.NBVersionCheck{
MinVersion: "0.0.2",
},
},
},
},
Users: map[string]*server.User{ Users: map[string]*server.User{
"1": { "1": {
IsServiceUser: true, IsServiceUser: true,
@ -246,4 +268,13 @@ func TestGenerateProperties(t *testing.T) {
if properties["store_engine"] != server.FileStoreEngine { if properties["store_engine"] != server.FileStoreEngine {
t.Errorf("expected JsonFile, got %s", properties["store_engine"]) t.Errorf("expected JsonFile, got %s", properties["store_engine"])
} }
if properties["rules_with_src_posture_checks"] != 1 {
t.Errorf("expected 1 rules_with_src_posture_checks, got %d", properties["rules_with_src_posture_checks"])
}
if properties["posture_checks"] != 2 {
t.Errorf("expected 1 posture_checks, got %d", properties["posture_checks"])
}
} }