chaseconey/laravel-datadog-helper

Laravel Datadog Helper 包。

1.2.1 2020-08-15 00:45 UTC

This package is auto-updated.

Last update: 2024-09-10 04:58:13 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads StyleCI

Laravel Datadog Helper 帮助您尽快将应用程序指标集成到 Laravel 中。

要求

  • Laravel >= 5
  • Datadog API 密钥

功能

  • 添加了对官方 DataDog/php-datadogstatsd 库的包装的 Datadog 门面
  • 提供自动跟踪响应时间指标的中间件
  • 允许使用公共前缀为整个应用程序发送的所有指标添加前缀

安装

使用 composer 需要此包。

composer require chaseconey/laravel-datadog-helper

Laravel 5.5 使用包自动发现,因此不需要您手动添加 ServiceProvider。

如果您想安装请求指标跟踪中间件,请按如下方式添加 Datadog 中间件类

// app/Http/Kernel.php

protected $middleware = [
    ...

    \ChaseConey\LaravelDatadogHelper\Middleware\LaravelDatadogMiddleware::class
];

无自动发现(或 Laravel < 5.5)

如果您不使用自动发现,或者您正在使用较旧的 Laravel 版本,请将 ServiceProvider 添加到 config/app.php 中的 providers 数组中

// config/app.php

'providers' => [
    ...
    
    ChaseConey\LaravelDatadogHelper\LaravelDatadogHelperServiceProvider::class,
];

如果您想使用门面,请将以下内容添加到您的 facades 中 config/app.php

// config/app.php

'aliases' => [
    ...
    
    'Datadog' => ChaseConey\LaravelDatadogHelper\Datadog::class
];

对于配置选项,使用发布命令将包配置复制到您的本地配置中

php artisan vendor:publish --provider="ChaseConey\LaravelDatadogHelper\LaravelDatadogHelperServiceProvider"

中间件

此包包含一个方便的中间件,您可以将它添加到任何 Laravel 项目中,以最快速度在 Datadog 中运行。

  • 指标名称: request_time
  • 值: Laravel 响应请求所需的时间
  • 标签:
    • status_code
    • url(通过 datadog.middleware_disable_url_tag 配置选项切换)
    • 添加到 datadog.global_tags 中的任何自定义标签

仅使用这些指标,以下是一些可以创建的示例图表

Datadog 图形配置 JSON

按 URL 的最大请求时间

{
  "viz": "heatmap",
  "requests": [
    {
      "q": "max:app.example.request_time.max{*} by {url}",
      "type": null,
      "style": {
        "palette": "dog_classic",
        "type": "solid",
        "width": "normal"
      },
      "aggregator": "avg",
      "conditional_formats": []
    }
  ],
  "autoscale": true
}

最受欢迎的页面

{
  "viz": "toplist",
  "requests": [
    {
      "q": "top(sum:app.example.request_time.count{*} by {url}.as_count(), 10, 'sum', 'desc')",
      "type": null,
      "style": {
        "palette": "warm",
        "type": "solid",
        "width": "normal"
      },
      "conditional_formats": []
    }
  ]
}

最慢的端点/页面

{
  "viz": "toplist",
  "requests": [
    {
      "q": "top(max:app.example.request_time.max{*} by {url}, 10, 'max', 'desc')",
      "type": null,
      "style": {
        "palette": "dog_classic",
        "type": "solid",
        "width": "normal"
      },
      "conditional_formats": [
        {
          "palette": "white_on_red",
          "value": 5,
          "comparator": ">"
        },
        {
          "palette": "white_on_green",
          "value": 5,
          "comparator": "<="
        }
      ]
    }
  ]
}

示例

此库包装了官方的 DataDog/php-datadogstatsd 库。所有功能都继承自由该库提供的核心实现,除了将 Datadogstatsd 替换为 Datadog(门面)之外。

例如

您将使用 Datadog::increment('my.sweet.metrics') 而不是 Datadogstatsd::increment('my.sweet.metrics')

有关完整的使用示例,请查看库的 usage README

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTINGCONDUCT 以获取详细信息。

鸣谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件