Batch, batch, batch... ÑвелиÑиваем ÑÐ°Ð·Ð¼ÐµÑ batch'а
ÐÑÑÑÑ ÐºÐ¾Ð¿Ð¸Ð¼ меÑÑики 60 Ñек
writers = [console, file, graphite] # +graphite
graphite {
host = "localhost"
port = 2003
#light = false
#protocol = "tcp"
bufferSize = 65000 #
TCP limit 64k (бÑло 8192)
writePeriod = 60 #
Batch (бÑло 1)
}
Batch, batch, batch...
Ðопим меÑÑики 60 Ñек, без деÑалей
writers = [console, file, graphite] # +graphite
graphite {
host = "localhost"
port = 2003
light = true #
без деÑалей (бÑло false)
#protocol = "tcp"
bufferSize = 65000
writePeriod = 60
}
Batch, batch, batch...
Ðопим меÑÑики 60 Ñек, без деÑалей, Ñ Ð¿Ð¾ÑеÑÑми
writers = [console, file, graphite] # +graphite
graphite {
host = "localhost"
port = 2004 # udp-поÑÑ (бÑло 2003)
light = true
protocol = "udp" #
Ñ Ð¿Ð¾ÑеÑÑми (бÑло tcp)
bufferSize = 65000
writePeriod = 60
}
ÐаÑÑÑойки JMeter по ÑмолÑаниÑ
QUEUE_SIZE=5000 # Async Queue size
# Backend metrics window mode (fixed=fixed-size window, timed=time boxed)
backend_metrics_window_mode=fixed
# Backend metrics sliding window size for Percentiles, Min, Max
backend_metrics_window=100
# Backend metrics sliding window size for Percentiles, Min, Max
# when backend_metrics_window_mode is timed
# Setting this value too high can lead to OOM
# backend_metrics_large_window=5000
# Send interval in second
# Defaults to 5 seconds
backend_influxdb.send_interval=5
Batch, batch, batch... ÑвелиÑиваем ÑÐ°Ð·Ð¼ÐµÑ batch'а
ÐÑÑÑÑ Ñ Ð½Ð°Ñ 1200 rps и копим меÑÑики 60 Ñек
QUEUE_SIZE=72000 # 1200x60, бÑло 5000, Async Queue size
ÐонÑиг Ð´Ð»Ñ backend_metrics_window_mode=fixed (не оÑиÑаеÑÑÑ):
backend_influxdb.send_interval=60 # бÑло 5
backend_metrics_window=72000 # 1200x60, бÑло 100
ÐонÑиг Ð´Ð»Ñ backend_metrics_window_mode=timed (оÑиÑаеÑÑÑ ):
backend_influxdb.send_interval=60 # бÑло 5
backend_metrics_large_window=72000 # 1200x60, бÑло 5000
JMeter-ÑÑенаÑий, Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð¹ ÑÑаÑиÑÑикой
var plan = scenario.sendHttp(
testId: getTestId(linksCount),
linksCount: linksCount,
nameOfSampler: "web?id=${id} (GET)" //пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ${id} в имени
);
ÐолÑÑим много Ñегов в InfluxDB и болÑÑой индекÑ:
web?id=0 (GET)web?id=1 (GET)- ...
web?id=1000000 (GET)
Ðли вообÑе ниÑего не запиÑем: ERROR org.apache.jmeter.visualizers.backend.influxdb
failed to send data to influxDB server.
Error writing metrics to influxDB Url:
http://influxdb:8086/write?db=jmeter100000,
responseCode: 400, responseBody: {"error": "partial write:
max-values-per-tag limit exceeded (100000/100000):
measurement=\"jmeter\" tag=\"transaction\"
value=\"web?id=19806 (GET)\" dropped=2"}
Error writing metrics to influxDB Url:
http://influxdb:8086/write?db=jmeter100000,
responseCode: 413, responseBody: {"error":"Request Entity Too Large"}
Ðе иÑполÑзÑем пеÑеменнÑе в имени запÑоÑа
var plan = scenario.sendHttp(
testId: getTestId(linksCount),
linksCount: linksCount,
nameOfSampler: "web?id={id} (GET)" //Ð²Ð¾Ñ Ñак бÑÑÑÑее
);
ÐолÑÑим один Ñег в InfluxDB и малÑй индекÑ:
web?id={id} (GET)
SLA можно пÑовеÑÑÑÑ Ð¿Ð¾ % оÑибок (в summary)
Assertion на длиÑелÑноÑÑÑ Ð²ÑÑавиÑÑ Ð² ÑеÑÑ
- Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов в JMeter: Duration Assertion
- Ð´Ð»Ñ ÑÑанзакÑий в JMeter: JSR-223 Listener
jmeter.apache.org/usermanual/component_reference.html#Duration_Assertion
gist.github.com/polarnik/7f5fdc5c70809c879dd42904b8639f31
- Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов в Gatling:
.check(responseTimeInMillis.lte(100)) - Ð´Ð»Ñ ÑеÑÑа в Gatling: Assertions
gatling.io/docs/gatling/reference/current/core/check/#responsetimeinmillis
gatling.io/docs/gatling/reference/current/core/assertions/
5.
СокÑаÑение меÑÑик из JMeter, Gatling, ...
-
Batch, batch, batch... ÑвелиÑиваем ÑÐ°Ð·Ð¼ÐµÑ batch'а пÑи вÑÑавке
-
Ðамена инÑеÑвала в 1 ÑекÑÐ½Ð´Ñ Ð½Ð° 1 минÑÑÑ Ð´Ð»Ñ ÑеÑÑов долÑÑе 5 минÑÑ
-
Ðо вÑÐµÐ¼Ñ ÑеÑÑа доÑÑаÑоÑно ÑÑÐ¾Ð²Ð½Ñ Ð´ÐµÑализаÑии summary
-
SLA можно пÑовеÑÑÑÑ Ð¿Ð¾ % оÑибок, а Assertion вÑÑавиÑÑ Ð² ÑеÑÑ
-
ÐеÑалÑнÑй оÑÑÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑоÑмиÑоваÑÑ Ð¿Ð¾Ñле ÑеÑÑа
УÑкоÑение вÑбоÑки из InfluxDB ÑеÑез Grafana Ñ nginx
6.
ÐеÑиÑование оÑвеÑов Ð¾Ñ InfluxDB Ñ nginx
-
ÐеÑиÑование GET-запÑоÑов к /query в nginx
-
ÐаÑÑÑаиваем DataSource в Grafana на меÑод
GETиhttp://nginx:80 -
ÐлиÑние инÑеÑвалов вÑемени Grafana на кеÑиÑование
-
Ðамена оÑноÑиÑелÑного инÑеÑвала вида
now()-6h...now()абÑолÑÑнÑм
InfluxDB endpoints: кеÑиÑÑем запÑоÑÑ
https://docs.influxdata.com/influxdb/v1.8/tools/api/- /debug/pprof (GET)
- /debug/requests (GET)
- /debug/vars (GET)
- /ping (GET, HEAD)
- /query (GET, POST)
- /write (POST)
- /metrics (GET)
- /api/v2/query (POST)
- /api/v2/write (POST)
- /health (GET)
InfluxDB endpoint /query (GET, POST)
-
GET:
- SELECT
- SHOW
- SELECT
-
POST:
- SELECT INTO
- ALTER
- CREATE
- DELETE
- DROP
- GRANT
- KILL
- REVOKE
ЧаÑÑÑ nginx.conf Ð´Ð»Ñ ÐºÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ /query (GET)
location /query {
proxy_cache mycache;
proxy_cache_key "$host$request_uri";
proxy_cache_min_uses 1;
proxy_cache_methods GET;
proxy_cache_valid 200 302 10m;
proxy_pass http://influxdb:8086;
proxy_cache_background_update on;
proxy_cache_revalidate on;
proxy_cache_lock on;
add_header X-Cache-Status $upstream_cache_status;
}
ÐаÑÑÑаиваем DataSource на http://nginx (GET)
/provisioning/datasources/jmeter_cache.yaml
apiVersion: 1
datasources:
- name: jmeter_cache # ÐÐ¼Ñ DataSource в Grafana
type: influxdb # InfluxQL
access: proxy # Server
database: jmeter # ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
в InfluxDB
url: http://nginx:80 #
ÐдÑÐµÑ ÐºÐµÑиÑÑÑÑего ÑеÑвеÑа
jsonData:
httpMode: GET #
ÐеÑод GET
basicAuth: false #
Ðез аÑÑенÑиÑикаÑии
Ðажен ÑÑаÑиÑеÑкий инÑеÑвал Ð´Ð»Ñ ÐºÐµÑиÑованиÑ
ÐбÑолÑÑнÑй:

Ðе оÑноÑиÑелÑнÑй:

ÐÑноÑиÑелÑнÑй инÑеÑвал Last 6 hours UTC:
curl -G 'http://influxdb:8086/query?db=mydb' --data-urlencode \
'q=SELECT * FROM "metrics" \
where time>1655827200000 AND time<1655848800000'
ÐаждÑÑ Ð¼Ð¸Ð»Ð¸ÑекÑÐ½Ð´Ñ Ð´Ð°ÐµÑ Ð½Ð¾Ð²Ñй диапазон:
curl -G 'http://influxdb:8086/query?db=mydb' --data-urlencode \
'q=SELECT * FROM "metrics" \
where time>1655827230023 AND time<1655848830023' #+30023=+30s
Ð ÑÑо Ñже новÑй URL, новÑй клÑÑ ÐºÐµÑиÑованиÑ
СÑÑлка в Grafana Text (HTML) Ð´Ð»Ñ Ð°Ð²ÑомаÑизаÑии
<h2>
<a href="/d/${__dashboard}/?from=${__from}&to=${__to}&${db:queryparam}">
Select static time interval
</a>
</h2>

6.
ÐеÑиÑование оÑвеÑов Ð¾Ñ InfluxDB Ñ nginx
- ÐеÑиÑование GET-запÑоÑов к /query в nginx
location /query { proxy_pass http://influxdb:8086; }
-
ÐаÑÑÑаиваем DataSource в Grafana на меÑод GET и http://nginx:80
-
ÐлиÑние инÑеÑвалов вÑемени Grafana на кеÑиÑование
-
Ðамена оÑноÑиÑелÑного инÑеÑвала вида
now()-6h...now()абÑолÑÑнÑм
/d/${__dashboard}/?from=${__from}&to=${__to}&${db:queryparam}
УÑкоÑение Ñ 10 Ñек до 10 мÑек (Ñ 1000)
ÐеÑиÑование Ñ nginx ÑÑкоÑÑÐµÑ Ð´Ð¾ 1000 Ñаз
ÐониÑоÑинг, ÑÑÐ¾Ð±Ñ Ð·Ð°ÐºÐ¾Ð¿Ð°ÑÑÑÑ Ð² меÑÑики InfluxDB
7.
ÐониÑоÑинг пÑоизводиÑелÑноÑÑи InfluxDB
-
ÐониÑоÑинг обÑеÑиÑÑемнÑÑ Ð¼ÐµÑÑик
- CPU и памÑÑÑ
- ÐÐµÑ Ð²Ð°Ñка памÑÑи Ð´Ð»Ñ InfluxDB и пеÑезапÑÑки
-
ÐониÑоÑинг внÑÑÑÐµÐ½Ð½Ð¸Ñ Ð¼ÐµÑÑик InfluxDB из Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ __internal
- РазмеÑÑ ÑаÑд InfluxDB
- ÐолиÑеÑÑво знаÑений Ñегов
- ÐолиÑеÑÑво конкÑÑенÑнÑÑ Ð·Ð°Ð¿ÑоÑов к InfluxDB
ÐониÑоÑинг обÑеÑиÑÑемнÑÑ Ð¼ÐµÑÑик
CPU ~= ÐолиÑеÑÑво одновÑеменнÑÑ query
RAM ~= Ð Ð°Ð·Ð¼ÐµÑ Ð·Ð°Ð´ÐµÐ¹ÑÑвованнÑÑ shard
ÐониÑоÑинг внÑÑÑÐµÐ½Ð½Ð¸Ñ Ð¼ÐµÑÑик InfluxDB из Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ __internal
shard : path : size : ÑазмеÑÑ Ð¸Ð½Ð´ÐµÐºÑов
database : numSeries : колиÑеÑÑво знаÑений Ñегов
httpd : колиÑеÑÑво и длиÑелÑноÑÑÑ Ð·Ð°Ð¿ÑоÑов
РазмеÑÑ shard'ов InfluxDB
Shard â ÑаÑÑÑ Ð¸Ð½Ð´ÐµÐºÑа, напÑимеÑ, за 1 ÑаÑ
CREATE DATABASE "jmeter"
WITH DURATION INF REPLICATION 1
SHARD DURATION 1h NAME "autogen";
ÐÐУ ~= Ð Ð°Ð·Ð¼ÐµÑ shard'ов в памÑÑи (меÑÑики shard)
РазмеÑÑ shard'ов InfluxDB в памÑÑи из shard
database : numSeries : колиÑеÑÑво знаÑений Ñегов
ÐолиÑеÑÑво конкÑÑенÑнÑÑ Ð·Ð°Ð¿ÑоÑов к InfluxDB
7.
ÐониÑоÑинг пÑоизводиÑелÑноÑÑи InfluxDB
-
ÐониÑоÑинг обÑеÑиÑÑемнÑÑ Ð¼ÐµÑÑик
- CPU и памÑÑÑ
- ÐÐµÑ Ð²Ð°Ñка памÑÑи Ð´Ð»Ñ InfluxDB и пеÑезапÑÑки
-
ÐониÑоÑинг внÑÑÑÐµÐ½Ð½Ð¸Ñ Ð¼ÐµÑÑик InfluxDB из Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ __internal
- РазмеÑÑ shard'ов InfluxDB
- ÐолиÑеÑÑво знаÑений Ñегов
- ÐолиÑеÑÑво конкÑÑенÑнÑÑ Ð·Ð°Ð¿ÑоÑов к InfluxDB
ÐонÑигÑÑиÑование огÑаниÑений в InfluxDB по даннÑм мониÑоÑинга
8.
ÐонÑигÑÑиÑование ÑеÑвеÑа InfluxDB
- ÐгÑаниÑиваем
max-concurrent-queries- ÐгÑаниÑиваем
max_connsв nginx upstream
- ÐгÑаниÑиваем
- ÐгÑаниÑиваем
query-timeout - ÐгÑаниÑиваем
max-select-series - ÐгÑаниÑиваем
max-select-buckets - Ðзменение Ñипа индекÑа Ñ
inmemнаtsi1 - ÐогиÑование ÑзкиÑ
меÑÑ c
log-queries-after
ÐгÑаниÑиваем max-concurrent-queries
[coordinator]
# The maximum number of concurrent queries
# allowed to be executing at one time.
# If a query is executed and exceeds this limit,
# an error is returned to the caller.
# This limit can be disabled by setting it to 0.
max-concurrent-queries = 5
ÐгÑаниÑиваем query-timeout
[coordinator]
# The maximum time a query will is allowed
# to execute before being killed by the system.
# This limit can help prevent run away queries.
# Setting the value to 0 disables the limit.
query-timeout = "60s"
РаÑÑÑиÑÑвайÑе на 100 ÐÐÐ°Ð¹Ñ Ð°Ð»Ð»Ð¾ÐºÐ°Ñий в Ñек
ÐÑли памÑÑи 6000 ÐÐайÑ, Ñо 60s - пÑедел
ÐÑибка пÑи доÑÑижении query-timeout
query-timeout limit exceeded
SELECT mean(avg)
FROM jmeter
WHERE
time>1656242940000000000 and
time<1656242940000000000+10m
GROUP BY time(1m), transaction, statut, testid
ÐÑениваем пÑеделÑное колиÑеÑÑво Ñегов оÑвеÑа
ÐÑÑÑÑ ÐµÑÑÑ:
- 5000 знаÑений transaction
- 2 знаÑÐµÐ½Ð¸Ñ statut (ok, ko)
- 10 000 комбинаÑий (ÑеÑий) вÑего
Ð Ð¼Ñ Ð´Ð¾Ð¿ÑÑкам запÑоÑÑ Ð¿Ð¾ вÑем знаÑениÑм:
SELECT mean(avg) FROM "jmeter"
РлимиÑÐ°Ñ Ð²ÑÑÑавлÑем 5000 Ñ 2 + ÑÑÑÑ-ÑÑÑÑ
ÐгÑаниÑиваем max-select-series
[coordinator]
# The maximum number of series a SELECT can run.
# A value of 0 will make the maximum series
# count unlimited.
# max-select-series = 0
max-select-series = 10100
ÐÑибка пÑи доÑÑижении max-select-series
max-select-series limit exceeded: (10101/10100)
SELECT mean(avg)
FROM "jmeter"
ÐÑениваем пÑедел гÑÑппиÑовки по вÑемени
ÐÑимеÑно 11-12 ÑоÑек
select mean(avg)
from jmeter
where
time>1656242940000000000 and
time<1656242940000000000+10m
group by time(1m)
Рна мониÑоÑе 1920 ÑоÑек в ÑиÑÐ¸Ð½Ñ â болÑÑе полÑзоваÑÐµÐ»Ñ Ð½Ðµ ÑвидиÑ
ÐгÑаниÑиваем max-select-buckets
[coordinator]
# The maxium number of group by
# time bucket a SELECT can create.
# A value of zero will max the maximum
# number of buckets unlimited.
# max-select-buckets = 0
max-select-buckets = 1920
ÐÑибка пÑи доÑÑижении max-select-buckets
select mean(avg)
from jmeter
where
time>1656242940000000000 and
time<1656242940000000000+10m
group by time(1ms)
ERR: max-select-buckets limit exceeded: (600000/1920)
Ðзменение Ñипа индекÑа Ñ inmem на tsi1
ÐÑли Ñ Ð¾Ñим ÑÐ¾Ñ ÑанÑÑÑ ÑÑÑÑÑи знаÑений Ñегов
[data]
# The type of shard index to use for new shards.
# The default is an in-memory index that is
# recreated at startup.
# A value of "tsi1" will use a disk based index
# that supports higher cardinality datasets.
index-version = "tsi1"
ÐогиÑование ÑзкиÑ
меÑÑ c log-queries-after
[coordinator]
# The time threshold when a query will be
# logged as a slow query.
# This limit can be set to help
# discover slow or resource intensive queries.
# Setting the value to 0 disables the slow query logging.
log-queries-after = "2s"
8.
ÐонÑигÑÑиÑование ÑеÑвеÑа InfluxDB
- ÐгÑаниÑиваем
max-concurrent-queries- ÐгÑаниÑиваем
max_connsв nginx upstream
- ÐгÑаниÑиваем
- ÐгÑаниÑиваем
query-timeout - ÐгÑаниÑиваем
max-select-series - ÐгÑаниÑиваем
max-select-buckets - Ðзменение Ñипа индекÑа Ñ
inmemнаtsi1 - ÐогиÑование ÑзкиÑ
меÑÑ c
log-queries-after
Ðе ÑÑкоÑÑеÑ, но повÑÑÐ°ÐµÑ ÑÑабилÑноÑÑÑ
ÐÑоÑилиÑование доÑок Grafana, анализ запÑоÑов к InfluxDB
9.
Ðнализ логов InfluxDB
[coordinator]
# The time threshold when a query will be logged as a slow query.
# This limit can be set to help
# discover slow or resource intensive queries.
# Setting the value to 0 disables the slow query logging.
log-queries-after = "2s"
Detected slow query:
SELECT top(avg, 3) FROM jmeter
WHERE time >= now() - 1d AND time <= now()
GROUP BY time(1m), application, transaction, statut
(qid: 27, database: jmeter10000, threshold: 2s)
10.
ÐÐ°Ð¼ÐµÑ Ð´Ð»Ð¸ÑелÑноÑÑи оÑвеÑа на запÑÐ¾Ñ Ð¸Ð· Grafana в InfluxDB: Access Browser, Method POST
ÐÑÑвлÑем медленнÑй и ÑаÑÑÑй запÑоÑ
СÑеднее вÑÐµÐ¼Ñ Ð¾Ñклика за ÑеÑÑ
SELECT mean(avg)
FROM jmeter
WHERE
statut = 'ok' AND
time > now()-10d AND time < now()
GROUP BY testId, time(1d)
11.
ÐодгоÑовка даннÑÑ
Ð´Ð»Ñ Ð¾ÑвеÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Continuous Queries
CREATE
CONTINUOUS QUERY cq_mean_avg_query_1d ON jmeter10000
RESAMPLE EVERY 10m FOR 1d
BEGIN
SELECT mean(avg) AS avg
INTO jmeter10000."archive".jmeter_1d
FROM jmeter10000."autogen".jmeter
GROUP BY testId, time(1d, 0s)
END;
ÐапÑÐ¾Ñ ÑÑановиÑÑÑ Ð±ÑÑÑÑее
SELECT last(avg)
FROM "archive".jmeter_1d
WHERE time > now()-10d AND time < now()
GROUP BY testId, time(1d)
----------------------------------------
----------------------------------------
SELECT mean(avg)
FROM jmeter
WHERE statut = 'ok' AND
time > now()-10d AND time < now()
GROUP BY testId, time(1d);
СокÑаÑайÑе колиÑеÑÑво Continuous Queries
CQ не кеÑиÑÑÑÑÑÑ Ñ nginx
Ðе нÑжно делаÑÑ ÑлиÑком много CQ
Ðе нÑжно делаÑÑ CQ, коÑоÑÑе ÑабоÑаÑÑ Ñ Ð±Ð¾Ð»ÑÑими shard'ами (год â много, доÑÑаÑоÑно днÑ)
ÐÑÑÑ Ðº Continuous Queries
Ðнализ логов InfluxDB
log-queries-after = "2s"
ÐÐ°Ð¼ÐµÑ Ð´Ð»Ð¸ÑелÑноÑÑи оÑвеÑа на запÑÐ¾Ñ Ð¸Ð· Grafana в InfluxDB
Grafana Datasource: Access Browser, Method POST + WebConsole
ÐодгоÑовка даннÑÑ Ð´Ð»Ñ Ð¾ÑвеÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Continuous Queries
RESAMPLE EVERY 10m FOR 1d
УÑкоÑение запиÑи в InfluxDB Ñо ÑÑоÑÐ¾Ð½Ñ Ð¸ÑÑоÑника меÑÑик и алÑÑеÑнаÑивÑ
ÐдновÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¼ÐµÑÑик Ð¼Ð¾Ð¶ÐµÑ ÑоÑмозиÑÑ
ÐпÑимизиÑÑем запиÑÑ Ð² InfluxDB c Telegraf и MQ
12.
Смена ÐÐ InfluxDB v1.8, InfluxDB v2, VictoriaMetrics или ClickHouse
InfluxDB v2 иÑполÑзÑÐµÑ Ð±ÑÑÑÑÑй движок
VictoriaMetrics кеÑиÑÑÐµÑ Ð¾ÑвеÑÑ Ð¸ Ð¶Ð¼ÐµÑ Ð´Ð°Ð½Ð½Ñе
ClickHouse бÑÑÑÑ (пÑи налиÑии памÑÑи) и Ñдобен
РазгоннÑй поÑенÑиал InfluxDB v1.8 огÑомен
СодеÑжание
Ðогда опÑимизаÑÐ¸Ñ InfluxDB важна
Разделение даннÑÑ Ð½Ð° ÑазнÑе Ð±Ð°Ð·Ñ Ð¸ ÑеÑвеÑÑ InfluxDB
«ÐÑÑ Ð¸Ð²Ð¸Ñование» Ð±Ð°Ð·Ñ InfluxDB в Grafana
СокÑаÑение ÑилÑÑÑов по Ñегам в Grafana
СокÑаÑение меÑÑик из JMeter, Gatling, ...
ÐеÑиÑование оÑвеÑов Ð¾Ñ InfluxDB Ñ nginx
ÐониÑоÑинг пÑоизводиÑелÑноÑÑи InfluxDB
ÐонÑигÑÑиÑование ÑеÑвеÑа InfluxDB
Ðнализ логов InfluxDB
ÐÐ°Ð¼ÐµÑ Ð´Ð»Ð¸ÑелÑноÑÑи оÑвеÑа на запÑÐ¾Ñ Ð¸Ð· Grafana в InfluxDB
ÐодгоÑовка даннÑÑ Ð´Ð»Ñ Ð¾ÑвеÑа Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Continuous Queries
Смена ÐÐ InfluxDB v1.8, InfluxDB v2, VictoriaMetrics или ClickHouse
ÐелиÑе, кеÑиÑÑйÑе, ÑÑкоÑÑйÑе!
https://github.com/polarnik/influxdb-bench
УÑкоÑение InfluxDB, СмиÑнов ÐÑÑеÑлав, @qa_load
Feedback :
ÐовÑÑÐ°Ñ ÐºÐ°ÑеÑÑво более деÑÑÑи леÑ. ÐанимаÑÑÑ ÑиÑÑемой диÑÑанÑионного банковÑкого обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ ÑÑидиÑеÑÐºÐ¸Ñ Ð»Ð¸Ñ. ÐÑновной пÑоÑÐ¸Ð»Ñ Ð¼Ð¾ÐµÐ¹ ÑабоÑÑ â ÑеÑÑиÑование пÑоизводиÑелÑноÑÑи. Ð Ð°Ð·Ð²Ð¸Ð²Ð°Ñ ÑообÑеÑÑво инженеÑов по ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи, Ð¿Ð¾Ð¼Ð¾Ð³Ð°Ñ ÐºÐ¾Ð»Ð»ÐµÐ³Ð°Ð¼ в telegram ÑаÑе «QA â Load & Performance».
