DeepQL
#91
Replies: 2 comments
-
The nomenclature of trigger vs tracepoint is under review and will be addressed in time. |
Beta Was this translation helpful? Give feedback.
0 replies
-
When dealing with values that can be either an expression or a static value, e.g. labels. It will be necessary to specify if it is a static value or expression by wrapping expressions in
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
DeepQL is the primary interaction with Deep. We need to be able to create, delete, modify and search deep using this
protocol.
DeepQL - Create
Creating needs to be straight forward within Deep. Below are some ideas:
Common controls
In all cases there are shared controls that can be used. These include:
Fire Count
This control allows you to set the number of times this action should be triggered be fore being disabled. Currently,
this is limited to act only on the clients. If fire count is set to 10, then each client can trigger this action a
maximum of 10 times. This control is reset each time the config of a client changes. Resulting is possibly more triggers
than expected.
see #81
Rate limit
This controls how frequently an action can be triggered. This prevents a trigger from running again until this time
elapses. If set to 1000ms then the trigger will only fire once per second.
Window
This control allows for a time window to be set for the trigger. A window can be a combination of
window_start
and
window_end
, each are optional and need not be set.window_start
will default tonow
, whilewindow_end
willdefault to different values depending on the action type. The values can be absolute times, or relative times (e.g. 7d);
relative times are resolved on creation.
Targeting
This controls the targets that are provided the triggers. This allows you to install a trigger only on specific
services, or applications. The client resource definition is used to determine these targets.
Generic Trigger
A generic trigger can be created which allows you full control on the actions. This can be useful when creating more
complex actions.
Full options
Full options
Logs
When creating logs it is generally the case you want this log to log always unless specified. However, we do not want
logs to continue for all time. As they can easily be forgotten, so the defaults for logs should be:
So the below log created on Monday 12:00 will continue until Wednesday 12:00 where it will stop.
Full options
Full options
Snapshot
When collecting a snapshot you generally are looking for a small collection of data so you can understand the data that
is in the area. To assist this the defaults are set to:
Full options
Full options
Metric
When collecting a metric these are generally for a longer period as we want to track a value over a period of time. To
assist this the defaults are set to:
Full options
Full options
Span
When collecting a span, it is likely you want to augment your observability until a permanent change can be made. So the
defaults are:
Full options
Full options
DeepQL - Search
Now we need to query the data that is collected by deep. This can be data in many areas (logs, traces, metrics,
snapshots), primarily the query will deal with snapshots. query for logs should be done in the log provider.
Basic query statements
Advanced query statements
DeepQL - Interactions
As we can create triggers via DeepQL it should also be possible to list and delete them.
Basic interactions
Beta Was this translation helpful? Give feedback.
All reactions