我当前的设置涉及使用 Express.js 的 Node.js Web 应用程序。
我正在使用 DataDog 的 dd-tracer 来测量 Node.js 花费在特定方法调用上的时间,作为我的 APM 解决方案的一部分。
我想知道是否可以测量传入 HTTP 请求忙于将数据作为 HTTP 响应正文发送回客户端的时间部分。
尝试进行此类检测时是否存在任何陷阱或不准确之处?
有谁知道为什么默认情况下 APM 客户端库不测量这一点?
我已经在我的 JVM 上安装了 glowroot(java 应用程序监控)。当我的应用程序空闲时,我会得到这种内存堆使用情况图。图案看起来几乎是统一的。有人可以解释并指出我关于为什么图表看起来像这样的任何博客文章吗?我好奇。
我遇到 APM 服务器和 APM 代理 (Elastic Stack) 的兼容性问题。
"elastic-apm-node": "^3.0.0"
Run Code Online (Sandbox Code Playgroud)
配置:
var apm = require('elastic-apm-node').start({
serviceName: "******-dev",
captureBody: 'all',
stackTraceLimit: 10,
transactionMaxSpans:10,
serverUrl: "http://localhost:5601"
}).addErrorFilter(function (payload) {
if(payload.context.response && payload.context.response.status_code === 429){
return false;
}
return payload;
})
Run Code Online (Sandbox Code Playgroud)
APM服务器版本: 7.4.0
错误:
APM Server responded with "404 Not Found". This might be because you're running an incompatible version of the APM Server. This agent only supports APM Server v6.5 and above. If you're using an older version of the APM Server, …
Run Code Online (Sandbox Code Playgroud) 我在看 APM 工具。本质上是 Dynatrace,我可以看到它还提供了似乎与语言无关且无需修改代码的跟踪功能。
与 dynatrace 之类的工具相比,jaeger/open tracking 在哪里会是更好的选择?
是的,dynatrace(或其他类似 Elastic APM)能够提供对跟踪以外的应用程序的更多洞察。
但仅从跟踪的角度来看...... jaeger 有哪些优势或能力比 APM 工具更好或在 APM 中不可用。仅从跟踪的角度来看。
将 Rails 与 ActiveRecord(和 PostgreSQL)一起使用时,执行“简单”查询会为它们添加一个名称,例如调用
Article.all
# => Article Load (2.6ms) SELECT "articles".* FROM "articles"
Run Code Online (Sandbox Code Playgroud)
命名查询Article Load
。但是,当执行稍微复杂的查询时,不会生成名称,例如
Article.group(:article_group_id).count
# => (1.2ms) SELECT COUNT(*) AS count_all, "articles"."article_group_id" AS articles_article_group_id FROM "articles" GROUP BY "articles"."article_group_id"
Run Code Online (Sandbox Code Playgroud)
如果使用以下execute
方法执行自定义查询,我可以添加一个名称:
ActiveRecord::Base.connection.execute("SELECT * FROM articles", "My custom query name")
# => My custom query name (2.5ms) SELECT * FROM articles
Run Code Online (Sandbox Code Playgroud)
但是有没有办法将自定义名称添加到使用 ActiveRecord 方法构建的查询中?
如果您想知道为什么:该名称对于所有类型的监控都很有用,例如在 AppSignal 中查看慢查询时。
我有一个 docker-compose.yml 文件,其中包含 elasticsearch 和 kibana。我想在 docker-compose.yml 文件中添加 APM 服务器服务。有没有办法将 apm 服务器配置到 .yml 文件?我正在阅读有关在 docker 上配置 apm 服务器的内容,但这不是我想要的,因为我正在使用 docker-compose 进行此操作。
我的 docker-compose 文件:
version: '3.8'
services:
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.0
ports:
- 9200:9200
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
environment:
- xpack.monitoring.enabled=true
- xpack.watcher.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
networks:
- elastic
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.13.0
ports:
- 5601:5601
depends_on:
- elasticsearch
environment:
- ELASTICSEARCH_URL=http://localhost:9200
- xpack.apm.enabled=false
networks:
- elastic
networks:
elastic:
driver: bridge
volumes:
elasticsearch-data:
Run Code Online (Sandbox Code Playgroud)
更新了 …
我正在寻找PHP的应用程序性能管理(请参阅http://en.wikipedia.org/wiki/Application_performance_management)
此工具可以插入生产中的任何PHP应用程序,并可以收集/显示有关每个请求的PHP执行时间,网络时间,数据库查询时间的统计信息.对于每个指标,我希望看到最小值,最大值和平均值.
所有这些统计数据都可以实时获得,也可以过去获得.
有没有现成的工具可以做到这一点?欢迎任何工具(免费或不免费)的建议.
用于Java的(相对)新的内置性能监视器/分析器是Mission Control。在甲骨文的文档做广告,他们可以在生产中使用,而不会产生性能开销(不到2%):
工具链[Mission Control + Flight Recorder]使开发人员和管理员可以从本地运行或部署在生产环境中的Java应用程序收集和分析数据。
我已经使用jvisualvm
(VisualVM)多年了,但是由于在生产环境中可能会带来性能开销,所以人们从来没有使用过(VisualVM)。
所以我问:任务控制(及其飞行记录器)与VisualVM之间的区别是什么,它使MC / FR不会妨碍性能?还是它们不包括VisualVM提供的某些功能?
我们最近在我们的生产环境中看到了一个 CPU 消耗高的问题,并且在调试时看到了一些奇怪的东西。当我执行“top -H”以查看每个线程 ID 的 CPU 统计信息时,我发现线程 X 消耗了大量 CPU。当我进行线程转储时,我看到这个线程 X 处于 BLOCKED 状态。这是什么意思,处于 BLOCKED 状态的线程可以消耗高 CPU 吗?我认为这可能是一个微不足道的问题,但我是调试性能问题和 JVM 的新手,不确定我在这里可能遗漏了什么。
我正在试用 Elastic APM。我已经成功创建了一个有数据流入的服务。我想看看我是否可以拥有多个服务。不知何故,我遇到了问题,所以我想删除一些服务。但是,我找不到删除服务的方法。
问题:如何删除 APM 中的服务?
与 APM 相关的索引:
{
"_index": "apm-7.3.2-metric-000001",
"_type": "_doc",
"_id": "XgEhYm0BiAdOXLlDGc-r",
"_version": 1,
"_score": null,
"_source": {
"jvm": {
"memory": {
"non_heap": {
"committed": 87449600,
"max": -1,
"used": 66599704
},
"heap": {
"committed": 232783872,
"max": 2025848832,
"used": 170023936
}
},
"thread": {
"count": 63
},
"gc": {
"alloc": 632406344
}
},
"observer": {
"hostname": "localhost.localdomain",
"id": "d1aec10a-cc4e-44f4-9aed-acf57d107ab7",
"ephemeral_id": "ae48b040-f9f6-4144-a600-d402defaa44a",
"type": "apm-server",
"version": "7.3.2",
"version_major": 7
},
"agent": {
"name": "java",
"ephemeral_id": "66d5c439-271c-483d-a426-d0e569bede4a",
"version": "1.9.0" …
Run Code Online (Sandbox Code Playgroud)