GridQL is a Lucene inspired syntax for filter Meya ledgers entries (aka logs). This powerful query language allows to you to examine your ledger entries and debug your Meya conversational apps.

meya.text.event.say text:hi

This would filter logs for all SayEvent entries (or it's subclasses) where the text exactly matches "hi". The "bare" field is assumed to be a type search. You can see the list of types within this API reference.

Logs usage

The most common usage for GridQL is within the Logs UI within the Meya Console.

GridQL in logsGridQL in logs

GridQL in logs

Runtime usage

GridQL can also be used within custom Grid element code. This can be useful when creating custom integration or log elements.

from meya.core.type_registry import TypeRegistry
from meya.gridql.parser import GridQL
from meya.text.event.say import SayEvent

entry = SayEvent(text="hi")
query = "meya.event.entry.interactive AND NOT (text:*fizz* OR text:*buzz*)"
gridql = GridQL.create(
    query, type_registry=TypeRegistry.current.get()
)
if gridql.match_entry(entry):
  print("It matched!")
else:
  print("No match :(")

asdf

Cheatsheet

All "interactive" events
meya.event.entry.interactive

For a specific trace
trace_id:tr-39ccfbe2bc65414a901648323c210216

Time range search
["2020-10-05 17:20:00.000-04:00" TO "2020-10-05 17:25:00.000-04:00"]

All incoming web requests
meya.http.entry.request direction:rx

Outgoing web requests for a specific API
meya.http.entry.request direction:tx url:*dialogflow*

All bot lifecycle entries (triggers, flows, component)
meya.bot.entry

Boolean expressions w/ wildcards
meya.event.entry.interactive AND NOT (text:*fizz* OR text:*buzz*)