11 Apr 2025 05:19 PM
actually after i did upgrade from classic to Grail, found these issues
timeseries { availability = sum(dt.host.availability, default: 0, filter: { (availability.state == "up") AND ( in(dt.entity.host, classicEntitySelector("type(host),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName.equals(\"***\"))"))) }), availability.0 = sum(dt.host.availability) }, by: { dt.entity.host }, nonempty: true, union: true
| fieldsAdd availability = availability[] / availability.0[] * 100
| sort availability asc
| fieldsAdd availability = arraySum(availability)
| fieldsRemove availability.0
| join [ timeseries uptime = avg(dt.host.uptime, filter: { in(dt.entity.host, classicEntitySelector("type(host),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName.equals(\"****\"))")) }), by: { dt.entity.host }
| fieldsAdd uptime = arrayAvg(uptime) ], on: { dt.entity.host }, fields: { uptime, dt.entity.host, timeframe, interval }, kind: outer
| limit 20
shows this error, The field dt.entity.host overrides an existing field, please suggest?
11 Apr 2025 09:00 PM
Hi there,
This is happening because the join command is attempting to add a new field called 'dt.entity.host' as part of the 'fields:' parameter when that field already exists. You should be able to resolve this by simply removing 'dt.entity.host' from the 'fields' parameter.
The new query would looks something like this:
timeseries { availability = sum(dt.host.availability, default: 0, filter: { (availability.state == "up") AND ( in(dt.entity.host, classicEntitySelector("type(host),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName.equals(\"***\"))"))) }), availability.0 = sum(dt.host.availability) }, by: { dt.entity.host }, nonempty: true, union: true
| fieldsAdd availability = availability[] / availability.0[] * 100
| sort availability asc
| fieldsAdd availability = arraySum(availability)
| fieldsRemove availability.0
| join [ timeseries uptime = avg(dt.host.uptime, filter: { in(dt.entity.host, classicEntitySelector("type(host),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName.equals(\"****\"))")) }), by: { dt.entity.host }
| fieldsAdd uptime = arrayAvg(uptime) ], on: { dt.entity.host }, fields: { uptime, timeframe, interval }, kind: outer
| limit 20
If this occurred during an automated conversion, you may also wish to submit a support case for investigation as a potential bug.