Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KQL Function CRD #419

Merged
merged 15 commits into from
Oct 25, 2024
Merged

KQL Function CRD #419

merged 15 commits into from
Oct 25, 2024

Conversation

jessejlt
Copy link
Member

Introduce a CRD for the management of KQL Functions and Views in Ingestor. The primary target for this PR is the handling of Views as a means to enable custom schema definitions, but since Views are just special Functions, we also handle them as well. Included is a sample directory with an included Function and View.

@jwilder jwilder marked this pull request as ready for review October 24, 2024 15:04
jwilder and others added 9 commits October 24, 2024 15:49
Due to a golang bug related to http2 connections not getting
closed when they are broken at times, we disabled http2 and also
disabled long-lived connections.  While this resolved the issues
we saw, ingestor and collector have much higher CPU due to the
constant TLS connection setup and teardown.

Since we understand the root problem better now, this re-enables
persistent connections with http 1.1 with a gradual drain on
the server side.  The drain is used to when scaling out so that
traffic eventually becomes balanced.  This also add a mitigation
for http2 (though still disabled) which would allow us to use http2
connections in the future.

http2 is still disabled because even when we send a GOAWAY message
from the server, we still get spurious client side errors.  When
the upstream bug is fixed, we can revisit http2 enablement.
This was a case that was missing a repair when we get an error
while reading the block.
The segment flush interval defaults to 100ms which allows time
for many small writes to fill up the buffer and be flushed to disk
in larger batches.  When there a lot of metrics or tables and not
a lot of concurrent writes, this flush interval increases CPU utilization.

This setting allows for increasing the flush interval in collector to
reduce CPU usage since the number of writes is relatively infrequent.
For ingestor, we leave the default value in place.
Until now bundle.sh would expect that the AKS and ADX clusters be in the
same region. This PR updates the script to add support for these
clusters to be in different regions.
api/v1/function_types_test.go Show resolved Hide resolved
@jessejlt jessejlt merged commit 27b3d77 into main Oct 25, 2024
4 checks passed
@jessejlt jessejlt deleted the jesse/view-crd2 branch October 25, 2024 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants