Skip to main content
Glama
persistence_utils.go1.92 kB
package remedy import sharedActions "lunar/shared-model/actions" func ConvertToPersisted(agg Aggregation) Output { outputRemedyStats := []OutputStats{} for remedyWithAction, remedyStats := range agg.RemedyStats { pEndpointAffectedStats := []OutputEndpointAffectedStats{} for endpoint, endpointStats := range remedyStats.AffectedStatsByEndpoint { single := OutputEndpointAffectedStats{ Method: endpoint.Method, URL: endpoint.URL, Count: endpointStats.Count, CountByStatusCode: endpointStats.StatusCodes, } pEndpointAffectedStats = append(pEndpointAffectedStats, single) } affectedRatio := float32( remedyStats.AffectedCount, ) / float32( agg.TotalCount, ) outputStats := OutputStats{ Remedy: remedyWithAction.Remedy, Action: remedyWithAction.Action, AffectedCount: remedyStats.AffectedCount, AffectedRatio: affectedRatio, AffectedStatsByEndpoint: pEndpointAffectedStats, } outputRemedyStats = append(outputRemedyStats, outputStats) } outputRemedyActionStats := map[Action]OutputActionStats{} for action, actionStats := range agg.RemedyActionStats { pStatusCodes := map[string]float32{} for statusCode, count := range actionStats.StatusCodes { pStatusCodes[statusCode] = float32(count) / float32(agg.TotalCount) } ratio := float32(actionStats.Count) / float32(agg.TotalCount) outputActionStats := OutputActionStats{ Count: actionStats.Count, Ratio: ratio, RatioByStatusCode: pStatusCodes, } outputRemedyActionStats[action] = outputActionStats } return Output{ RemedyStats: outputRemedyStats, RemedyActionStats: outputRemedyActionStats, MaxTime: sharedActions.TimestampToStringFromInt64( agg.MaxEpochMillis), MinTime: sharedActions.TimestampToStringFromInt64( agg.MinEpochMillis), } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server