Hi ALL,
need help for a using case here.
we are trying to setup alert based on below data
value1 ( the average of past 7days since yesterday)
value2 ( the average of yesterday's day)
if value2 is lower than 70% of value1 , trigger alerts.
below is what I use to setup this query
index=main topoName=EnrichmentTopology datacenter=NA desc=ENR131 earliest=-7d@d latest=-2d@d | stats avg(value) as 7day by desc | appendcols [ search index=main topoName=EnrichmentTopology datacenter=NA desc=ENR131 earliest=-2d@d latest=-1d@d | stats avg(value) as 1day by desc] | eval diff=(7day-1day)
but it always return me
Error in 'eval' command: The expression is malformed. Expected ).
any idea ? thx a lot
Yes, eval
is allowed with stats
. The problem appears to be with the field names which begin with digits. Put them inside single quotes to force Splunk to treat them as field names. ... | eval diff=('7day'-'1day')
You may want to consider using multisearch:
| multisearch
[search index=main topoName=EnrichmentTopology datacenter=NA desc=ENR131 earliest=-7d@d latest=-2d@d | stats avg(value) as prevWeek]
[search index=main topoName=EnrichmentTopology datacenter=NA desc=ENR131 earliest=-2d@d latest=-1d@d | stats avg(value) as prevDay]
| eval alert=if(prevDay<(prevWeek*0.7),"Alert","No alert")
It doesn't look like you need a "by" clause in your stats, since there is only 1 value for desc.
Yes, eval
is allowed with stats
. The problem appears to be with the field names which begin with digits. Put them inside single quotes to force Splunk to treat them as field names. ... | eval diff=('7day'-'1day')
correct, its after we use day7 and day1 , issue is gone, thx
everything works before | eval part , I guess we cannot use eval with stats ?