Trying to use filtering in compiled code (dot.net) rather then using curl, I have no problem pulling events in a json array and converting it to a dataset, here’s my problem, if there are 175000 events in there I only want to get the ones failing, right now I pull them all
So I have tried adding a filter to the url based on what i see in the doc’s but it appears to ignore it and pulls all events…
Any ideas or suggestions would be quite welcome
filter = HttpUtility.UrlEncode("fieldselector=event.check.status == 2")
Dim url = baseurl & ":8080/api/core/v2/events?limit=2500&" & filter
Thank you
earth to sensu, come in please over, krsshhht! count = 1
calling url : https://api.lab.sensu.xxx.xxx:8080/api/core/v2/events?limit=2500&fieldselector%3Devent.check.status+%3D%3D+2
our returned response headers :
Sensu-Entity-Warning:
Transfer-Encoding: chunked
Content-Type: application/json
Date: Fri, 30 Jul 2021 15:17:50 GMT
Hey,
Just for clarity when you add the filter using an api endpoint call with curl, does it work as you expect?
Maybe the problem is you need to explicitly use "2"
in your filter string to indicate that the value is the string interpreation of the number 2.
For example this works for me with curl:
curl -H "Authorization: Key $SENSU_API_KEY" 'https://127.0.0.1:8080/api/core/v2/namespaces/default/events?limit=2500&fieldSelector=event.check.status == "2"'
1 Like
Suspecting your right Jef, I jumped into powershell to see if I could get better results and have succeeded with the following
$blaa = ‘fieldSelector=event.check.status == “2”’
#$blaa = [System.Web.HTTPUtility]::UrlEncode(‘fieldselector=event.check.status == “2”’)
$URI = $baseurl + ":8080/api/core/v2/events?limit=500&$blaa"
write-host $uri
try {
$it = Invoke-RestMethod -Uri $uri -headers $headers
} catch {
# Dig into the exception to get the Response details.
# Note that value__ is not a typo.
write-host “”
Write-Host “StatusCode:” $.Exception.Response.StatusCode.value__
Write-Host “StatusDescription:” $.Exception.Response.StatusDescription
}
write-host event count: $it.Count
write-host done
PS C:\repo\scripts\sensu> c:\repo\scripts\sensu\keepalive.ps1
start
https://api.lab.sensu.xxxxx:8080/api/core/v2/events?limit=500&fieldSelector=event.check.status == “2”
event count: 7
done
Thank you so far, back into visual studio now to investigate how to craft that string
Andrew
I did manage to work around this by hard coding the filter into my URL rather then string addition, thanks for your help on this, still struggling with the in and matches filter will let ya know how I make out