auditloganalyzer

package
v1.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: Apache-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddPerVerbRequestCount

func AddPerVerbRequestCount(perVerbRequestCount map[string]*RequestCounts, auditEvent *auditv1.Event)

func AddSummaryPerVerbRequestCount

func AddSummaryPerVerbRequestCount(lhs, rhs map[string]*RequestCounts)

func CheckForExcessiveApplies

func CheckForExcessiveApplies() *excessiveApplies

func CheckForInvalidMutations

func CheckForInvalidMutations() *invalidRequests

func CheckForLatency

func CheckForLatency() *auditLatencyRecords

func CheckForRequestsDuringShutdown

func CheckForRequestsDuringShutdown() *lateRequestTracking

func CheckForViolations

func CheckForViolations() *auditViolations

func CountsOverTime

func CountsOverTime(estimatedStartOfCluster metav1.Time) *countTracking

func GetKubeAuditLogSummary

func GetKubeAuditLogSummary(ctx context.Context, kubeClient kubernetes.Interface, beginning, end *time.Time, auditLogHandlers []AuditEventHandler) error

func NewAuditLogSummarizer

func NewAuditLogSummarizer() *summarizer

func NewWatchCountTracking

func NewWatchCountTracking() *watchCountTracking

func WriteAuditLogSummary

func WriteAuditLogSummary(artifactDir, timeSuffix string, auditLogSummary *AuditLogSummary) error

Types

type AuditEventHandler

type AuditEventHandler interface {
	HandleAuditLogEvent(auditEvent *auditv1.Event, beginning, end *metav1.MicroTime, nodeName string)
}

type AuditLogSummary

type AuditLogSummary struct {
	// contains filtered or unexported fields
}

every audit log summarizer is not threadsafe. The idea is that you use one per thread and later combine the summarizers together into an overall summary

func NewAuditLogSummary

func NewAuditLogSummary() *AuditLogSummary

func (*AuditLogSummary) Add

func (s *AuditLogSummary) Add(auditEvent *auditv1.Event, auditEventInfo auditEventInfo)

func (*AuditLogSummary) AddSummary

func (s *AuditLogSummary) AddSummary(rhs *AuditLogSummary)

type CountForSecond

type CountForSecond struct {
	// NumberOfConcurrentRequestsBeingHandled is the sum of requests that were ongoing (minus watches I think, I'm not sure).
	// That includes
	// 1. requests that were started before this second and not completed until during or after this second
	// 2. requests that were started this second
	NumberOfConcurrentRequestsBeingHandled int

	NumberOfRequestsReceived int

	// NumberOfRequestsReceivedThatLaterGot500 is calculated based on when the request was received instead of completed
	// because different requests have different timeouts, so it's more useful to categorize based on received time
	NumberOfRequestsReceivedThatLaterGot500 int
}

type CountsForRun

type CountsForRun struct {
	NumberOfSeconds int

	// CountsForEachSecond is a count for every second of a job run.  Every index is one second long and the count starts
	// with the creation time of the ClusterVersion resource.
	CountsForEachSecond []CountForSecond

	EstimatedStartOfCluster metav1.Time
	LastAcceptedTime        metav1.Time
}

func (*CountsForRun) LastSecondWithData

func (c *CountsForRun) LastSecondWithData() int

func (*CountsForRun) SubsetDataAtTime

func (c *CountsForRun) SubsetDataAtTime(endTime metav1.Time) *CountsForRun

func (*CountsForRun) ToCSV

func (c *CountsForRun) ToCSV() ([]byte, error)

func (*CountsForRun) ToLineChart

func (c *CountsForRun) ToLineChart() (*plot.Plot, error)

func (*CountsForRun) TruncateDataAfterLastValue

func (c *CountsForRun) TruncateDataAfterLastValue()

func (*CountsForRun) WriteContentToStorage

func (c *CountsForRun) WriteContentToStorage(storageDir, name, timeSuffix string) error

type OperatorKey

type OperatorKey struct {
	NodeName string
	Operator string
	Hour     int
}

type PerHTTPStatusRequestCount

type PerHTTPStatusRequestCount struct {
	// contains filtered or unexported fields
}

func NewPerStatusRequestCount

func NewPerStatusRequestCount(httpStatus int32) *PerHTTPStatusRequestCount

func (*PerHTTPStatusRequestCount) Add

func (s *PerHTTPStatusRequestCount) Add(auditEvent *auditv1.Event, auditEventInfo auditEventInfo)

func (*PerHTTPStatusRequestCount) AddSummary

type PerResourceRequestCount

type PerResourceRequestCount struct {
	// contains filtered or unexported fields
}

func (*PerResourceRequestCount) Add

func (s *PerResourceRequestCount) Add(auditEvent *auditv1.Event, auditEventInfo auditEventInfo)

func (*PerResourceRequestCount) AddSummary

type PerUserRequestCount

type PerUserRequestCount struct {
	// contains filtered or unexported fields
}

func NewPerUserRequestCount

func NewPerUserRequestCount(user string) *PerUserRequestCount

func (*PerUserRequestCount) Add

func (s *PerUserRequestCount) Add(auditEvent *auditv1.Event, auditEventInfo auditEventInfo)

func (*PerUserRequestCount) AddSummary

func (s *PerUserRequestCount) AddSummary(rhs *PerUserRequestCount)

type RequestCount

type RequestCount struct {
	Count    int64
	Operator string
	NodeName string
	Hour     int
}

type RequestCounts

type RequestCounts struct {
	// contains filtered or unexported fields
}

func NewRequestCounts

func NewRequestCounts() *RequestCounts

func (*RequestCounts) Add

func (s *RequestCounts) Add(auditEvent *auditv1.Event)

func (*RequestCounts) AddSummary

func (s *RequestCounts) AddSummary(rhs *RequestCounts)

type RequestCountsWithVerbs

type RequestCountsWithVerbs struct {
	// contains filtered or unexported fields
}

func NewRequestCountsWithVerbs

func NewRequestCountsWithVerbs() *RequestCountsWithVerbs

func (*RequestCountsWithVerbs) Add

func (s *RequestCountsWithVerbs) Add(auditEvent *auditv1.Event)

func (*RequestCountsWithVerbs) AddSummary

func (s *RequestCountsWithVerbs) AddSummary(rhs *RequestCountsWithVerbs)

type SerializedAuditLogSummary

type SerializedAuditLogSummary struct {
	LineReadFailureCount      int
	RequestCounts             SerializedRequestCounts
	PerUserRequestCount       []SerializedPerUserRequestCountWithVerbs
	PerResourceRequestCount   []SerializedPerResourceRequestCount
	PerHTTPStatusRequestCount []SerializedPerHTTPStatusRequestCount
}

func NewSerializedAuditLogSummary

func NewSerializedAuditLogSummary(summary AuditLogSummary) SerializedAuditLogSummary

type SerializedPerHTTPStatusCount

type SerializedPerHTTPStatusCount struct {
	HTTPStatus int32
	Count      int
}

type SerializedPerHTTPStatusRequestCount

type SerializedPerHTTPStatusRequestCount struct {
	HTTPStatus              int32
	RequestCounts           SerializedRequestCounts
	PerResourceRequestCount []SerializedPerResourceCountOnly
	PerUserRequestCount     []SerializedPerUserCountOnly
}

type SerializedPerResourceCountOnly

type SerializedPerResourceCountOnly struct {
	GroupVersionResource schema.GroupVersionResource
	RequestCounts        SerializedRequestCounts
}

type SerializedPerResourceCountWithVerbs

type SerializedPerResourceCountWithVerbs struct {
	GroupVersionResource schema.GroupVersionResource
	RequestCounts        SerializedRequestCountsWithVerbs
}

type SerializedPerResourceRequestCount

type SerializedPerResourceRequestCount struct {
	GroupVersionResource schema.GroupVersionResource
	RequestCounts        SerializedRequestCounts
	PerUserRequestCount  []SerializedPerUserCountOnly
	PerVerbRequestCount  []SerializedPerVerbCountOnly
}

type SerializedPerUserCountOnly

type SerializedPerUserCountOnly struct {
	User          string
	RequestCounts SerializedRequestCounts
}

func NewSerializedPerUserCountOnly

func NewSerializedPerUserCountOnly(user string, count RequestCounts) SerializedPerUserCountOnly

type SerializedPerUserRequestCount

type SerializedPerUserRequestCount struct {
	User                    string
	RequestCounts           SerializedRequestCounts
	PerResourceRequestCount []SerializedPerResourceCountOnly
	PerVerbRequestCount     []SerializedPerVerbCountOnly
}

type SerializedPerUserRequestCountWithVerbs

type SerializedPerUserRequestCountWithVerbs struct {
	User                    string
	RequestCounts           SerializedRequestCounts
	PerResourceRequestCount []SerializedPerResourceCountWithVerbs
	PerVerbRequestCount     []SerializedPerVerbCountOnly
}

type SerializedPerVerbCountOnly

type SerializedPerVerbCountOnly struct {
	Verb          string
	RequestCounts SerializedRequestCounts
}

func NewSerializedPerVerbCountOnly

func NewSerializedPerVerbCountOnly(verb string, count RequestCounts) SerializedPerVerbCountOnly

type SerializedRequestCounts

type SerializedRequestCounts struct {
	RequestStartedCount       int
	RequestFinishedCount      int
	ClientFailedRequestCount  int
	ServerFailedRequestCount  int
	PerHTTPStatusRequestCount []SerializedPerHTTPStatusCount
}

func NewSerializedRequestCounts

func NewSerializedRequestCounts(summary RequestCounts) SerializedRequestCounts

type SerializedRequestCountsWithVerbs

type SerializedRequestCountsWithVerbs struct {
	SerializedRequestCounts SerializedRequestCounts `json:",inline"`
	PerVerbRequestCount     []SerializedPerVerbCountOnly
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL