Skip to main content

create-status-provider

Add a new section to the agent status output (agent status command)

跳到安装

来源信息

仓库
DataDog/datadog-agent
最近来源活动
2026年7月16日 18:42
检测到的 SKILL.md 语言
英语
星标
3,728
分支
1,488

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
create-status-provider
description
Add a new section to the agent status output (agent status command)
allowed-tools
Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
argument-hint
[provider-name]
model
sonnet
Add a new status provider to the Datadog Agent. Status providers contribute sections to the `agent status` output in JSON, plain text, and HTML formats. ## Instructions ### Step 1: Gather information from the user Use `AskUserQuestion` to collect the following. If `$ARGUMENTS` provides the provider name, skip that question. 1. **Provider name**: Display name for this status section (e.g. `"DogStatsD"`, `"Forwarder"`). 2. **Section name**: Grouping key. Providers with the same section are grouped. `"collector"` always appears first. 3. **What data to display**: What information should this section show? 4. **Placement**: Inside an existing component's `Provides` struct (most common) or standalone module? 5. **Conditional?**: Should the provider only appear when a feature is enabled? ### Step 2: Read reference examples Before writing any code, read the appropriate reference files to follow existing patterns: | What | Reference file | |---|---| | Provider interface | `comp/core/status/component.go` | | Provider implementation + templates | `comp/dogstatsd/status/statusimpl/status.go` and its `status_templates/` directory | | Registration in component Provides | `comp/trace/status/statusimpl/status.go` | | Template helpers (humanize, etc.) | `comp/core/status/render_helpers.go` | ### Step 3: Implement the provider Create the provider implementation following the reference. Also create the `status_templates/<name>.tmpl` and `status_templates/<name>HTML.tmpl` files following the templates in the reference's `status_templates/` directory. To make a provider conditional, return `nil` from the constructor when the feature is disabled. ### Step 4: Register the provider Register using `status.NewInformationProvider(yourProvider{...})` — either in an existing component's `Provides` struct (most common) or as a standalone `Module()`. The reference files show both patterns. ### Step 5: Verify 1. Build: `dda inv agent.build --build-exclude=systemd` 2. Lint: `dda inv linter.go` 3. Report the results to the user. ## Important Notes - Template directory must be named exactly `status_templates` and embedded via `//go:embed status_templates`. - Use a top-level key (e.g. `"myFeatureStats"`) to namespace data in the shared stats map. - For `HeaderProvider` (rarely needed), use `NewHeaderInformationProvider()` instead. ## Usage - `/create-status-provider` — Interactive: prompts for all details - `/create-status-provider "My Feature"` — Pre-fills the provider name
在 GitHub 查看