- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`You can customize Synthetic monitor messages using handlebars templating. The following examples cover advanced techniques such as comments, list access, conditions, and iterations.
Note: Always test your syntax directly in the monitor message editor, as template behavior may vary slightly across versions.
Use comments to explain what the template is doing. Comments are removed from the final rendered message.
{{! This is a comment }}
{{!
This is a
multi-line comment
}}
To display raw values without HTML escaping (for example, URLs, or HTTP responses in code blocks), use triple curly braces:
{{{my_var}}}
You can loop over lists (like steps or variables) or access items directly:
{{list.2.name}} {{! third item }}
{{list.-1.status}} {{! last item }}
{{list[My Complex Name]url}} {{! use bracket notation for complex keys }}
{{list[My Complex Name]failure.code}}
{{list.abc-def-ghi}} {{! access via ID (case-insensitive) }}
Note: All durations are in milliseconds.
Durations:
{{eval "synthetics.attributes.result.duration/1000"}}
Data Sizes:
{{eval "humanize_bytes(bodySize)"}}
#if
, #is_match
, and #is_exact_match
for logic-based rendering.{{#if synthetics.attributes.variable.config.CONFIG_VAR.secure}}
The CONFIG_VAR variable is obfuscated
{{else}}
The CONFIG_VAR variable isn't obfuscated
{{/if}}
{{#is_exact_match synthetics.failed_step.id "svn-yrx-3xg"}}
A backend-related step failed!
@slack-backend-team
{{else}}
Another step failed, probably Frontend related
@slack-frontend-team
{{/is_exact_match}}
#if
over #is_exact_match
for checking if a variable is empty or unset.Use #each
to loop over dictionaries or lists. You can access:
this
→ the current item@key
→ the current key (for dictionaries)@index
, @first
, @last
→ loop metadata{{#each users}}
# User `{{@key}}`
Name: {{name}}
Permissions: {{permissions}}
{{/each}}
Users: {{#each users}}`{{@key}}` ({{name}}){{#unless @last}}, {{/unless}}{{/each}}
{{#each synthetics.attributes.result.steps}}
* Step name: {{description}}
* Step status: {{status}}
* Step type: {{type}}
{{/each}}