Skip to content

Commit

Permalink
Merge branch 'prometheus:main' into refactor_collector
Browse files Browse the repository at this point in the history
  • Loading branch information
cristiangreco authored Nov 28, 2024
2 parents 47b8ea9 + 2ef168b commit cd63ca0
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ jobs:
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
with:
args: --verbose
version: v1.61.0
version: v1.62.0
2 changes: 1 addition & 1 deletion .yamllint
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
extends: default
ignore: |
ui/react-app/node_modules
**/node_modules

rules:
braces:
Expand Down
2 changes: 1 addition & 1 deletion Makefile.common
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_
SKIP_GOLANGCI_LINT :=
GOLANGCI_LINT :=
GOLANGCI_LINT_OPTS ?=
GOLANGCI_LINT_VERSION ?= v1.60.2
GOLANGCI_LINT_VERSION ?= v1.62.0
# golangci-lint only supports linux, darwin and windows platforms on i386/amd64/arm64.
# windows isn't included here because of the path separator being different.
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
Expand Down
23 changes: 20 additions & 3 deletions collector/perf_schema_events_statements.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ const perfEventsStatementsQuery = `
SUM_CREATED_TMP_TABLES,
SUM_SORT_MERGE_PASSES,
SUM_SORT_ROWS,
SUM_NO_INDEX_USED
SUM_NO_INDEX_USED,
QUANTILE_95,
QUANTILE_99,
QUANTILE_999
FROM (
SELECT *
FROM performance_schema.events_statements_summary_by_digest
Expand All @@ -67,7 +70,10 @@ const perfEventsStatementsQuery = `
Q.SUM_CREATED_TMP_TABLES,
Q.SUM_SORT_MERGE_PASSES,
Q.SUM_SORT_ROWS,
Q.SUM_NO_INDEX_USED
Q.SUM_NO_INDEX_USED,
Q.QUANTILE_95,
Q.QUANTILE_99,
Q.QUANTILE_999
ORDER BY SUM_TIMER_WAIT DESC
LIMIT %d
`
Expand Down Expand Up @@ -144,6 +150,11 @@ var (
"The total number of statements that used full table scans by digest.",
[]string{"schema", "digest", "digest_text"}, nil,
)
performanceSchemaEventsStatementsLatency = prometheus.NewDesc(
prometheus.BuildFQName(namespace, performanceSchema, "events_statements_latency"),
"A summary of statement latency by digest",
[]string{"schema", "digest", "digest_text"}, nil,
)
)

// ScrapePerfEventsStatements collects from `performance_schema.events_statements_summary_by_digest`.
Expand Down Expand Up @@ -208,10 +219,11 @@ func (c ScrapePerfEventsStatements) Scrape(ctx context.Context, instance *instan
tmpTables, tmpDiskTables uint64
sortMergePasses, sortRows uint64
noIndexUsed uint64
quantile95, quantile99, quantile999 uint64
)
for perfSchemaEventsStatementsRows.Next() {
if err := perfSchemaEventsStatementsRows.Scan(
&schemaName, &digest, &digestText, &count, &queryTime, &lockTime, &cpuTime, &errors, &warnings, &rowsAffected, &rowsSent, &rowsExamined, &tmpDiskTables, &tmpTables, &sortMergePasses, &sortRows, &noIndexUsed,
&schemaName, &digest, &digestText, &count, &queryTime, &lockTime, &cpuTime, &errors, &warnings, &rowsAffected, &rowsSent, &rowsExamined, &tmpDiskTables, &tmpTables, &sortMergePasses, &sortRows, &noIndexUsed, &quantile95, &quantile99, &quantile999,
); err != nil {
return err
}
Expand Down Expand Up @@ -271,6 +283,11 @@ func (c ScrapePerfEventsStatements) Scrape(ctx context.Context, instance *instan
performanceSchemaEventsStatementsNoIndexUsedDesc, prometheus.CounterValue, float64(noIndexUsed),
schemaName, digest, digestText,
)
ch <- prometheus.MustNewConstSummary(performanceSchemaEventsStatementsLatency, count, float64(queryTime)/picoSeconds, map[float64]float64{
95: float64(quantile95) / picoSeconds,
99: float64(quantile99) / picoSeconds,
999: float64(quantile999) / picoSeconds,
}, schemaName, digest, digestText)
}
return nil
}
Expand Down

0 comments on commit cd63ca0

Please sign in to comment.