Skip to content

Commit

Permalink
Added count of injection types to metrics.
Browse files Browse the repository at this point in the history
  • Loading branch information
Silvenga committed Aug 15, 2022
1 parent 359a1e3 commit b2a55b3
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
17 changes: 16 additions & 1 deletion src/Contrast.K8s.AgentOperator/Core/State/Appliers/PodApplier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,32 @@ public override ValueTask<PodResource> CreateFrom(V1Pod entity, CancellationToke
var isInjected = entity.GetAnnotation(InjectionConstants.IsInjectedAttributeName) is { } isInjectedAnnotation
&& isInjectedAnnotation.Equals(true.ToString(), StringComparison.OrdinalIgnoreCase);

var injectionType = GetInjectionType(entity);

var injectionStatus = entity.Status?.Conditions?.Where(x => x.Type == PodConditionConstants.InjectionConvergenceConditionType)
.Select(x => new PodInjectionConvergenceCondition(x.Status, x.Reason, x.Message))
.SingleOrDefault();

var resource = new PodResource(
entity.Metadata.GetLabels(),
isInjected,
injectionStatus
injectionStatus,
injectionType
);

return ValueTask.FromResult(resource);
}

private static AgentInjectionType? GetInjectionType(V1Pod entity)
{
AgentInjectionType? injectionType = null;
if (entity.GetAnnotation(InjectionConstants.IsInjectedAttributeName) is { } injectionTypeAnnotation
&& Enum.TryParse<AgentInjectionType>(injectionTypeAnnotation, true, out var injectionTypeEnum))
{
injectionType = injectionTypeEnum;
}

return injectionType;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ namespace Contrast.K8s.AgentOperator.Core.State.Resources
{
public record PodResource(IReadOnlyCollection<MetadataLabel> Labels,
bool IsInjected,
PodInjectionConvergenceCondition? InjectionStatus)
PodInjectionConvergenceCondition? InjectionStatus,
AgentInjectionType? InjectionType)
: INamespacedResource;
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ private async Task<Dictionary<string, decimal>> GetInjectionStatistics(Cancellat
var metrics = new Dictionary<string, decimal>();

var pods = await _clusterState.GetByType<PodResource>(cancellationToken);
foreach (var g in pods.GroupBy(x=>x.Resource.InjectionType))
{
metrics.Add($"Injected.{g.Key}.PodsCount", g.Count());
}

var podsInjectedCount = pods.Count(x => x.Resource.IsInjected);
metrics.Add("Injected.PodsCount", podsInjectedCount);

Expand Down

0 comments on commit b2a55b3

Please sign in to comment.