Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

W-15161420 tracing and entities #272

Open
wants to merge 46 commits into
base: latest
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
3db60af
Pricing W-14795157-pricing-changes
sarathecoubian Feb 9, 2024
b4b1ff0
dashboards
sarathecoubian Feb 14, 2024
a0615bb
W-14795157-pricing-changes
sarathecoubian Feb 22, 2024
0561446
Update app-dashboards.adoc
sarathecoubian Feb 22, 2024
cfd675a
Update index.adoc
sarathecoubian Feb 22, 2024
9576b9d
Update performance-and-impact.adoc
sarathecoubian Feb 22, 2024
161a299
Update performance-and-impact.adoc
sarathecoubian Feb 28, 2024
e376e90
W-13840863-EntitiesOverview-LimitedGA-SY (#255)
sarathecoubian Mar 1, 2024
ec90386
W-14038258-TracingOverview-SY (#259)
sarathecoubian Mar 1, 2024
9d942e8
Field feedback 03/01
sarathecoubian Mar 1, 2024
9e3dc7a
Adding updates from tech review.
emileemooreVT Mar 6, 2024
d21218b
Updates from Sathish
emileemooreVT Mar 7, 2024
100844d
AMQL partial
sarathecoubian Mar 13, 2024
164fa26
Merge branch 'latest' into W-14795157-pricing-changes
sarathecoubian Mar 13, 2024
503324f
Update modules/ROOT/pages/index.adoc
sarathecoubian Mar 13, 2024
ad34675
Update amql.adoc
sarathecoubian Mar 18, 2024
d18c327
Update amql.adoc
sarathecoubian Mar 18, 2024
02b55ae
Update amql.adoc
sarathecoubian Mar 18, 2024
4de0b3d
literal monospace
sarathecoubian Mar 19, 2024
28374d7
Update amql.adoc
sarathecoubian Mar 19, 2024
ae09a42
Update amql.adoc
sarathecoubian Mar 19, 2024
f46a2db
Titanium requirement
sarathecoubian Mar 22, 2024
59fe498
Apply suggestions from code review
sarathecoubian Apr 2, 2024
024067a
Update modules/ROOT/nav.adoc
sarathecoubian Apr 2, 2024
d419749
anypoint insights rename
sarathecoubian Apr 2, 2024
8ac04a4
Apply suggestions from code review
sarathecoubian Apr 5, 2024
dc30a3f
Merge branch 'latest' into W-15161420-tracing-and-entities
sarathecoubian Apr 5, 2024
feb6970
Merge pull request #276 from mulesoft/W-14795157-pricing-changes
sarathecoubian Apr 10, 2024
270e7ec
AMQL and Archive API partial implementation
sarathecoubian Apr 10, 2024
818941d
Update modules/ROOT/pages/am-apis.adoc
sarathecoubian Apr 12, 2024
1308a13
Apply suggestions from code review
sarathecoubian Apr 15, 2024
aba54ea
Update modules/ROOT/pages/am-apis.adoc
sarathecoubian Apr 24, 2024
aec05b6
Merge branch 'latest' into W-15161420-tracing-and-entities
valkyrie69 Aug 7, 2024
8244e20
Edits
valkyrie69 Aug 8, 2024
603fdb6
Formatting
valkyrie69 Aug 9, 2024
5b68d3e
W-16277644 Traces doc updates
valkyrie69 Aug 9, 2024
19ed5b7
Update
valkyrie69 Aug 9, 2024
6304394
Review feedback
valkyrie69 Aug 15, 2024
39e1134
Merge pull request #287 from mulesoft/W-16277644-traces-docs-updates-vh
valkyrie69 Aug 16, 2024
00abdd9
W-15161420-tracing-and-entities
dukesphere Sep 4, 2024
802c566
Merge branch 'latest' into W-14795157-pricing-changes
dukesphere Sep 6, 2024
98a56bb
Merge branch 'latest' into W-15161420-tracing-and-entities
dukesphere Sep 6, 2024
e48b999
Merge branch 'W-15161420-tracing-and-entities' into W-14795157-pricin…
dukesphere Sep 6, 2024
39eff8f
Merge pull request #277 from mulesoft/W-14795157-pricing-changes
dukesphere Sep 16, 2024
ddbd566
Merge branch 'latest' into W-15161420-tracing-and-entities
dukesphere Sep 17, 2024
7c7560c
Merge branch 'latest' into W-15161420-tracing-and-entities
dukesphere Oct 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
** xref:monitor-applications-on-rtf.adoc[Monitor Applications on Runtime Fabric]
** xref:am-installing.adoc[Monitor Hybrid Runtimes]
** xref:performance-and-impact.adoc[Anypoint Monitoring Performance, Impact, and Limits]
* xref:anypoint-insights.adoc[Anypoint Insights]
* xref:dashboards.adoc[About Dashboards]
* xref:dashboards-using.adoc[Use Dashboards]
** xref:app-dashboards.adoc[Built-in Application Dashboards]
Expand All @@ -21,6 +22,8 @@
** xref:dashboard-custom-config-table.adoc[Configure Tables]
** xref:dashboard-custom-config-text.adoc[Configure Text]
** xref:dashboard-config-ref.adoc[Dashboard Configuration Reference]
* xref:traces-overview.adoc[Exploring Trace Data for Apps and APIs]
** xref:trace-details.adoc[Trace and Span Details]
* xref:anypoint-custom-metrics-connector.adoc[Configure Custom Metrics]
* xref:telemetry-exporter.adoc[]
* xref:monitor-connectors.adoc[Monitor Connectors]
Expand All @@ -34,3 +37,4 @@
* xref:log-points.adoc[Enable Log Points]
* xref:raw-data.adoc[Download Raw Data]
* xref:tools.adoc[Use Connectors with Anypoint Monitoring]
* xref:am-apis.adoc[APIs for Anypoint Monitoring]
233 changes: 233 additions & 0 deletions modules/ROOT/pages/_partials/amql.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
// tag::amqlIntro[]
Anypoint Monitoring Query Language (AMQL) is a domain-specific language that enables you to search your organization’s metering and observability data for specific information that the MuleSoft Observability Platform Service collects.

AMQL uses similar syntax to SQL `SELECT` statements.
// end::amqlIntro[]

// tag::queryGrammarUR[]

To adhere to AMQL grammar, arrange your clauses in the following order:

[source,sql]
----
SELECT fieldList,[aggregationExpressionList][...]
FROM DataSource
WHERE timestamp between {start} AND {end}[ AND filterExpression]
[ORDER BY fieldOrAggregationList {ASC|DESC}]
[LIMIT limit]
[OFFSET offset]
----

The following example returns usage data between March 11 and March 13, 2023. The data source is Flex Gateway API calls, and the fields returned are organization ID, environment ID, and how many API calls were made:

[source,sql]
----
SELECT org_id, env_id, api_call_count
FROM flex_gateway_api_calls
WHERE timestamp between 1710198204000 AND 1710371004000
----

// end::queryGrammarUR[]

// tag::queryGrammarAll[]

To adhere to AMQL grammar, arrange your clauses in the following order:

[source,sql]
----
SELECT fieldList,[aggregationExpressionList][...]
FROM DataSource
WHERE timestamp between {start} AND {end}[ AND filterExpression]
[GROUP BY fieldGroupByList]
[HAVING havingConditionExpression]
[ORDER BY fieldOrAggregationList {ASC|DESC}]
[TimeSeries timeWindowSize]
[LIMIT limit]
[OFFSET offset]
----
// end::queryGrammarAll[]

// tag::filtering[]
The following clause shows AMQL filtering:

[source,sql]
----
filterExpression -> conditionExpresion [AND conditionExpression]
conditionExpression -> field comparisonOperator [literal|literList|field| NULL]
----

// end::filtering[]

// tag::grouping[]

[source,sql]
----
aggregationExpression -> aggregationFunction(field[,parameters])
AggregationFunction = avg|sum|percentile|histogram|max|min|count
aggregatedConditionExpression -> aggregationFunction(field[,parameters]) comparisionOperator [literal|literalList]
havingConditionExpression -> aggregatedConditionExpression [ AND aggregatedConditionExpression]

----
// end::grouping[]

// tag::reservedKeywords[]

AMQL has several reserved keywords, which are not case sensitive.

* `AS`
* `ASC`
* `BETWEEN`
* `BY`
* `DESC`
* `FROM`
* `GROUP`
* `HAVING`
* `IN`
* `LIKE`
* `LIMIT`
* `OFFSET`
* `ORDER`
* `SELECT`
* `WHERE`
* `TIMESTAMP`
* `TIMESERIES`

// end::reservedKeywords[]

// tag::selectClause[]
The `SELECT` clause enables you to get a list of fields in a data source using describe endpoints.

When you use `SELECT`, consider the following:

* Use describe endpoints for each service to get a list of fields present in your data source.
* Using `SELECT` with a wildcard (`select *`) returns all public endpoints for a data source. Not all data sources support this option.
* Wrap string literals in single quotes.
* Field names in `SELECT` clauses are case-sensitive.
* Using a field alias is supported. The syntax is `field AS aliasName`.
* Wrap field names within double quotes to handle field names with special characters. The syntax is `select "field1", "field2.a" as 'fieldA' from dataSource`.
* Aggregated fields support aliases. The syntax is `aggregationFunction(field, ..) AS alias`. If you don't provide an alias, the results return `aggregationFunction(field, ..)`.

// end::selectClause[]

// tag::whereClause[]
The `WHERE` clause enables you to define your `timestamp` range filter (in epoch milliseconds) and operators.

`WHERE` supports the following data types:

* String literal
* Integer
* Decimal

`WHERE` uses the following operators:

|====
|Filter Function |Filter Operator |Notes

|`Equals`
|`=`
|

|`NotEquals`
|`!=`
|

|`greater`
|`>`
|

|`greaterOrEquals`
|`>=`
|

|`less`
|`<`
|

|`lessOrEquals`
|`+<=+`
|

|`in`
|`IN`
| in (...)

|`between`
|`BETWEEN`
a|The timestamp field supports only `between`. For example:

[source,sql]
----
WHERE timestamp between 1710198204000 AND 1710371004000
----

|`match pattern`
|`LIKE`
|This operator is a simplified version of the `match` operator, although it lacks regexp support. It supports only `wildcard`, noted as `*`.

|====
// end::whereClause[]

// tag::groupingClauseUR[]

The `GROUPING` clause enables you to aggregate numeric values using the following functions:

|====
|Aggregation |Arguments

|`avg`
|`<fieldName>`

|`sum`
|`<fieldName>`

|`percentile`
|`<fieldName, percentage value in range (0;100)>`

|`max`
|`<fieldName>`

|`min`
|`<fieldName>`

|`count`
|`<fieldName>` or `<dimensionName>`

|`distinct_count`
|`<fieldName>` or `<dimensionName>`

|`histogram`
|`<fieldName, splitPointsArray>`

|====

Some fields in the data might not support certain aggregations.

// end::groupingClauseUR[]

// tag::timeseriesClause[]

//was "The TIMESERIES clause takes time window size returns events aggregated in provided time-buckets."
The `TIMESERIES` clause takes the time window size and returns events that are aggregated in time buckets you specified.

Use the following format:

[source,sql]
----
TimeWindowSize
// n is an integer
P{n}M // n months
P{n}D // n days
PT{n}H // n hours
PT{n}M // n minutes
PT{n}S // n seconds
----

The following examples show `TIMESERIES` windows:

* 1 month: `TIMESERIES P1M`
* 1 day: `TIMESERIES P1D`
* 1 hour: `TIMESERIES PT1H`
* 1 minute: `TIMESERIES PT1M`
* 30 seconds: `TIMESERIES PT30S`

// end::timeseriesClause[]
9 changes: 9 additions & 0 deletions modules/ROOT/pages/_partials/archive-api.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
You can access API analytics metrics data directly via the Anypoint Monitoring Archive API. Using this API, you can navigate and discover your API metrics data using a directory hierarchy.

The Anypoint Monitoring Archive API enables you to download files that contain https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-monitoring-archive-api/minor/1.0/pages/Metric%20Data/[JSON objects] that represent one or more metric events. You can write an application to navigate the data collected by the API and integrate it into your own system.

You can also enable non-aggregated API events by setting this property: `anypoint.platform.config.analytics.agent.api_raw_metrics.enabled=true`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two "You can also..." in a row. Can you change the wording of one of them?

These events contain more detailed information about each API invocation and can be accessed using the Anypoint Monitoring Archive API under the `raw` file type.

For more information about this API, see the https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/anypoint-monitoring-archive-api/minor/1.0/pages/home/[Anypoint Monitoring Archive API] page in Anypoint Exchange.
include::reuse::partial$billing/pricing.adoc[tag=apiAvailability]
1 change: 1 addition & 0 deletions modules/ROOT/pages/_partials/data-aggregation.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Anypoint Monitoring aggregates data in charts based on the selected time interval. The number of data points shown in a chart varies based on your selected time interval.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Anypoint Monitoring collects top occurring endpoints or operations for each data collection interval. Endpoints or operations that are not top occurring are sorted into a group called *Other*.

In each data collection interval, top occurring endpoints or operations vary. An endpoint or operation that is top occurring in one interval might not be top occurring in the next.

In Anypoint Monitoring charts and tables, the data comes from multiple data collection intervals. As a result, aggregated data shown in the dashboard is an estimation since the intervals might not have the same top occurring endpoints or operations. The tables show approximate counts for the most commonly occurring endpoints or operations when the *Other* grouping appears.

For example, when an endpoint occurs more often than other endpoints in one interval but less often in another interval, Anypoint Monitoring sorts it into the Other group for the first interval. In this case, the resulting table displays lower than actual values for that endpoint, since the metrics that do not appear are grouped into the *Other* group.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
. In the Anypoint Monitoring sidebar, click *Traces*.
1 change: 1 addition & 0 deletions modules/ROOT/pages/_partials/include-nav-entities.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
. In the Anypoint Monitoring navigation menu, click *Insights*.
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
. Log in to Anypoint Platform.
. Log in to Anypoint Platform with a user account that has xref:am-permissions.adoc[permission to access Anypoint Monitoring content] .
. In the navigation bar or the main Anypoint Platform screen, click *Monitoring*.
2 changes: 1 addition & 1 deletion modules/ROOT/pages/alerts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ include::reuse::partial$billing/pricing.adoc[tag=monitoringAlerts]

include::partial$include-nav-steps-no-permissions.adoc[]

. In the Anypoint Monitoring navigation menu, click *Alerts*.
include::partial$include-nav-alerts.adoc[]

In the *Alerts* page, you can:

Expand Down
58 changes: 58 additions & 0 deletions modules/ROOT/pages/am-apis.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
= APIs for Anypoint Monitoring

Anypoint Monitoring has APIs that enable you to view, sort, and query your data:

* Anypoint Monitoring Archive API
+
Enables you to navigate and discover your API metrics data using a directory hierarchy.
* Metrics API
+
Enables you to query and transform data from a specific time range using the Anypoint Monitoring Query Language.
* Traces API
+
Enables you to query traces data using the Anypoint Monitoring Query Language.

[[archive-api]]
== Anypoint Monitoring Archive API

include::partial$archive-api.adoc[]

[[metrics-api]]
== Anypoint Monitoring Metrics API

WIP

[[traces-api]]
== Anypoint Monitoring Traces API

WIP


[[amql]]
== Anypoint Monitoring Query Language (AMQL)

include::monitoring::partial$amql.adoc[tag=amqlIntro]

=== Query Grammar

include::monitoring::partial$amql.adoc[tag=queryGrammarAll]

=== Filtering

include::monitoring::partial$amql.adoc[tag=filtering]

=== Grouping

include::monitoring::partial$amql.adoc[tag=grouping]

=== Reserved Keywords

include::monitoring::partial$amql.adoc[tag=reservedKeywords]

=== SELECT Clause

include::monitoring::partial$amql.adoc[tag=selectClause]

=== WHERE Clause

include::monitoring::partial$amql.adoc[tag=whereClause]
Loading