我需要一些有关如何诊断缓慢的Elasticseach查询的建议。
设定
行为
问题 -有时,响应时间在100-200毫秒之间跳跃,但是花费仍然是1毫秒。我也能够在本地复制此行为(使用ElasticSearch docker)。
这是我捕获的Fiddler的踪迹,这是我的应用程序对Elasticsearch的调用:
ClientConnected: 17:28:44.325
ClientBeginRequest: 17:34:34.953
GotRequestHeaders: 17:34:34.953
ClientDoneRequest: 17:34:34.953
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 17:34:27.538
FiddlerBeginRequest: 17:34:34.953
ServerGotRequest: 17:34:34.953
ServerBeginResponse: 17:34:35.171
GotResponseHeaders: 17:34:35.171
ServerDoneResponse: 17:34:35.172
ClientBeginResponse: 17:34:35.172
ClientDoneResponse: 17:34:35.178
Run Code Online (Sandbox Code Playgroud)
因此,上面说的是Elasticsearch集群花了218ms来处理请求。但是,花费的时间是1ms。
我如何跟踪这个缓慢的请求?显然,这不是查询速度(因为花费的时间很短),因此它一定是集群中的某种东西。
有什么建议吗?
编辑
所以..根据我的愚蠢分析,那里看上去还不错。
这是我的性能监控工具的统计信息。您可以清楚地看到峰值和缓慢的异常值:

不知道从这里还能去哪里?我应该寻找其他指标吗?
我已经为我的fluentd.*索引设置了一个简单的 ILM 策略,在(用于测试 - )一小段时间后将被删除。
工业光魔:
PUT _ilm/policy/fluentd
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_age": "1d",
"max_size": "1gb"
},
"set_priority": {
"priority": 100
}
}
},
"delete": {
"min_age": "4d",
"actions": {
"delete": {}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
索引模板:
PUT _template/fluentd
{
"order": 0,
"index_patterns": [
"fluentd.*"
],
"settings": {
"index": {
"lifecycle": {
"name": "fluentd"
}
}
},
"aliases": {
"fluent": {}
}
}
Run Code Online (Sandbox Code Playgroud)
通过这些设置,我预计 ES 会删除超过 5-6 天的索引,但 …
我刚刚设置了一个 Elastic Cloud 部署,想知道为什么我的端点有一个特定的端口 (9243) 而默认的 HTTPS 端口 443 也可以工作?
在文档上,我只能找到这个:
端口 9200 用于 HTTP 连接,端口 9243 和 443 用于 HTTPS。通常建议使用 HTTPS,因为它更安全。
我正在试用 Elastic Cloud 14 天免费试用版。
我按照视频教程部署了弹性云。我设置了密码。但是,我不记得输入我的用户名。我尝试了我的电子邮件帐户,用于确认。我尝试了我的 IP 地址,我的 cloud.elastic.co 站点中给出的云 ID。我浏览了帐户和个人资料选项卡,但找不到任何内容。我搜索了默认用户名,但有些网站提到了“kibana”,但这也不起作用。我很尴尬,但我只有14天的时间来尝试,所以如果有人用过或一直在用这个,你能帮我吗?
我还应该在哪里寻找用户名?我根本没有设置我的用户名。如果有的话,默认用户名是什么?
我稍微修改了这个问题。
我想使用 REST API 并通过 API 密钥授权来查询 Elastic Cloud 实例中的数据。
我尝试使用 SQL API 和搜索 API。请注意,我更喜欢使用 SQL API。
基于文档中提供的以下curl命令:
curl -X POST "localhost:9200/_sql?format=txt&pretty" -H 'Content-Type: application/json' -d'
{
"query": "SELECT * FROM library WHERE release_date < \u00272000-01-01\u0027"
}
'
Run Code Online (Sandbox Code Playgroud)
curl -u elastic:password https://CLUSTER_ID.REGION.PLATFORM.found.io:9243/my_index/my_type -XPOST -d '{
"title": "One", "tags": ["ruby"]
}'
{"_index":"my_index","_type":"my_type","_id":"AV3ZeXsOMOVbmlCACuwj","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"created":true}
Run Code Online (Sandbox Code Playgroud)
以及有关 REST API 的文档,我尝试了以下操作:
import base64
import json
import requests
if __name__ == '__main__':
response1 = requests.post(
'https://{redacted-id}.northamerica-northeast1.gcp.elastic-cloud.com:9243/_sql?format=txt',
headers={
"Authorization": base64.standard_b64encode(bytes('{API_KEY_ID}:{API_KEY_KEY}', 'utf-8')),
"Content-Type": 'application/json' …Run Code Online (Sandbox Code Playgroud)