Skip to content

feat(landing): Dynatrace pricing guide - #1572

Merged
JeremyFunk merged 4 commits into
mainfrom
feat/guide-dynatrace-pricing
Oct 21, 2026
Merged

JeremyFunk merged 4 commits into
mainfrom
feat/guide-dynatrace-pricing

Conversation

@JeremyFunk

@JeremyFunk JeremyFunk commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Adds /guides/dynatrace-pricing: a pricing explainer for people working out what Dynatrace will cost them before they talk to sales.

What the page covers

  1. How Dynatrace pricing works: the Dynatrace Platform Subscription, the three kinds of meter (hosts, data, front end), the annual commitment, and what Dynatrace does not publish (minimum commitment, discount schedule, treatment of unused commitment).
  2. The rate card: list prices with monthly figures at 730 hours, a Full-Stack cost-per-host chart against the flat Infrastructure price, Full-Stack billing rules (0.25 GiB rounding, 4 GiB minimum, included metric and trace volumes), Kubernetes, logs/traces/metrics, RUM and synthetic.
  3. A worked monthly bill: a 10-host fleet priced line by line ($1,325.80 a month at list price), a stacked bar by meter, the pay-per-query vs included-queries retention trade-off, and what moves the bill.
  4. OpenTelemetry data on Dynatrace: which trace sources count against included volume (diagram), the enrichment caveat, and an OpenTelemetry Collector config that drops logs below INFO before export.
  5. Dynatrace vs New Relic pricing: what each meters, with links to the New Relic pricing guide.
  6. Maple's pricing: the volume-only model, a second Collector exporter for comparing both on the same data, and Settings → Billing usage.

Search intent: someone asking what Dynatrace costs (per host, per GiB, per year) and how DPS works, often comparing it with New Relic.

No client code, so no language tabs. guide-highlight.ts: YAML keys containing / (otlp_http/dynatrace) now highlight. Every other key highlights exactly as before.

Verification

  • Both Collector snippets checked with otel/opentelemetry-collector-contrib:0.163.1 (validate, alone and merged). In a live run, a DEBUG log record was dropped and an INFO record kept, a span reached both exporters, and the Maple exporter (with the MAPLE_TEST key) exported without errors.
  • bun run --cwd apps/landing build passes. Page reviewed at 1280 px and 390 px with Playwright.
  • Screenshot pending: /screenshots/guides/dynatrace-pricing-01-billing-usage.webp (Settings → Billing usage).

Maple docs linked

  • /docs/reference/ingest
  • /docs/infrastructure/hosts
  • /pricing

Sources (verified 2026-10-20)

Summary by CodeRabbit

  • New Features
    • Added a comprehensive Dynatrace pricing guide with rate-card calculations, billing examples, host-cost comparisons, OpenTelemetry guidance, and competitor comparisons.
    • Added the guide to the Guides index with reading time, description, navigation, and structured metadata.
    • Added the guide to the LLM-readable site index.
    • Improved YAML highlighting to recognize / in mapping keys.

@maple-review-bot

maple-review-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 8/10 · likely safe to merge
Held at 8 because a warning is open.
1 warning −1 · tests not needed · risk low

Adds a static Dynatrace pricing guide page, registers it in the guides index and llms.txt. Content and arithmetic check out; one internal link points at a page that does not exist.

  • New /guides/dynatrace-pricing page with the DPS rate card and a worked monthly bill
  • /guides core guide list gains the Dynatrace pricing entry
  • llms.txt gains the guide under its Guides section

Findings

🟠 Warning · F1 · Link to /guides/new-relic-pricing points at a page that does not exist

correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:420

No new-relic-pricing file exists under apps/landing/src/pages/guides/ and the repo has no redirect for it, so this link 404s. The New Relic comparison that does exist is /compare/new-relic. Link there, or land the New Relic guide first.

Point at `/compare/new-relic`, or merge after the `/guides/new-relic-pricing` page ships.
🤖 Prompt to fix this finding with an AI agent
Findings from an automated review of commit 49210367d8ad327e26f3ca5cff5a2d3680bdc069. Verify each one against the current code before changing anything, fix only those that still apply, and keep each fix to the lines it names.

---

F1 · Warning · correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:420
Link to `/guides/new-relic-pricing` points at a page that does not exist
No `new-relic-pricing` file exists under `apps/landing/src/pages/guides/` and the repo has no redirect for it, so this link 404s. The New Relic comparison that does exist is `/compare/new-relic`. Link there, or land the New Relic guide first.
Suggested fix: Point at `/compare/new-relic`, or merge after the `/guides/new-relic-pricing` page ships.

Production impact

Production traffic of the changed files (last 7 days)
File Calls/day Busiest operations
apps/landing/src/pages/guides/dynatrace-pricing.astro 131k maple 131k/day, 92.9% err
What was checked
  • Worked-example arithmetic recomputed: $1,325.80/month, $15,910/year, $173.70 retention break-even
  • toc slugs all match section ids; FAQ, TableOfContents, SeoHead, Layout props match the sibling guides
  • llms-full.txt is docs-only, so guides need no entry there

4921036 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@maple-review-bot maple-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 inline note from Maple's review. The score and summary are in the review comment above.

<p class="guide-eyebrow">10 · Comparison</p>
<h2>Dynatrace vs New Relic pricing</h2>
<p>
The two vendors meter different things. Dynatrace bills infrastructure by the hour and data by volume, with no seat fees. New Relic bills data by volume and users by seat. New Relic figures below are from <a href="https://newrelic.com/pricing" target="_blank" rel="noopener noreferrer">newrelic.com/pricing</a>, last verified {verified}; the <a href="/guides/new-relic-pricing">New Relic pricing guide</a> covers its model in detail.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Link to /guides/new-relic-pricing points at a page that does not exist

F1 · Warning · correctness

No new-relic-pricing file exists under apps/landing/src/pages/guides/ and the repo has no redirect for it, so this link 404s. The New Relic comparison that does exist is /compare/new-relic. Link there, or land the New Relic guide first.

Point at `/compare/new-relic`, or merge after the `/guides/new-relic-pricing` page ships.
🤖 Prompt to fix with an AI agent
In `apps/landing/src/pages/guides/dynatrace-pricing.astro:420`: Link to `/guides/new-relic-pricing` points at a page that does not exist.

No `new-relic-pricing` file exists under `apps/landing/src/pages/guides/` and the repo has no redirect for it, so this link 404s. The New Relic comparison that does exist is `/compare/new-relic`. Link there, or land the New Relic guide first.

Suggested fix: Point at `/compare/new-relic`, or merge after the `/guides/new-relic-pricing` page ships.

Verify the problem exists at that location before changing it, and keep the fix to those lines.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

2 flags not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)

Devin Review

<p class="guide-eyebrow">10 · Comparison</p>
<h2>Dynatrace vs New Relic pricing</h2>
<p>
The two vendors meter different things. Dynatrace bills infrastructure by the hour and data by volume, with no seat fees. New Relic bills data by volume and users by seat. New Relic figures below are from <a href="https://newrelic.com/pricing" target="_blank" rel="noopener noreferrer">newrelic.com/pricing</a>, last verified {verified}; the <a href="/guides/new-relic-pricing">New Relic pricing guide</a> covers its model in detail.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 New Relic guide link returns 404

Clicking the New Relic pricing guide link returns 404. No route exists for that guide, so readers cannot open the promised comparison.

Learn more

The new pricing guide links to a separate New Relic pricing guide, but the landing application's guide routes do not include that page. The internal link therefore leads to the site's not-found response.

Example: A reader clicks “New Relic pricing guide” in the comparison section and reaches 404 rather than the detailed guide described by the link.

Recommended fix: Add the linked guide route before publishing this link, or replace the link with an existing destination such as the cited New Relic pricing page.

Devin Review


Was this helpful? React with 👍 or 👎 to provide feedback.

@JeremyFunk

Copy link
Copy Markdown
Collaborator Author

The /guides/new-relic-pricing link is intentional: that page ships in #1568. Merge #1568 first (or together) so the link resolves.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 81d3bdb3-5f2c-4c87-98fd-bdd5dfc32704
📥 Commits

Reviewing files that changed from the base of the PR and between 6d76cb4 and bdbc2d2.

📒 Files selected for processing: 1
  • apps/landing/src/pages/guides/dynatrace-pricing.astro

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 60126fef-81a6-4dd1-8e11-46dc2ef037bb
📥 Commits

Reviewing files that changed from the base of the PR and between e71f8b9 and 6d76cb4.

📒 Files selected for processing: 4
  • apps/landing/src/lib/guide-highlight.ts
  • apps/landing/src/pages/guides/dynatrace-pricing.astro
  • apps/landing/src/pages/guides/index.astro
  • apps/landing/src/pages/llms.txt.ts

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.

📝 Walkthrough

The pull request adds a Dynatrace pricing guide and links it from guide listings. It also updates YAML highlighting to recognize slash characters in mapping keys.

Changes: Dynatrace pricing guide

Layer / File(s) Summary
Pricing guide content and calculations
apps/landing/src/pages/guides/dynatrace-pricing.astro
The new guide defines pricing data and calculations. It renders rate tables, billing examples, OpenTelemetry configurations, and vendor comparisons.
Guide presentation and discovery
apps/landing/src/pages/guides/dynatrace-pricing.astro, apps/landing/src/pages/guides/index.astro, apps/landing/src/pages/llms.txt.ts
The page adds responsive styles. The guide index and generated Guides links include the new guide.

YAML key highlighting

Layer / File(s) Summary
Allow slash characters in YAML keys
apps/landing/src/lib/guide-highlight.ts
The YAML key-matching pattern now accepts slash characters in keys.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Suggested reviewers: makisuo

Merge Risk: 🔵 Low · up to 6d76c

This adds a new Dynatrace pricing guide to the marketing site. The main risk is that its link to the New Relic pricing guide returns a 404 unless the companion New Relic guide PR is merged first or alongside it. Otherwise, the impact is limited to guide content quality.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely identifies the main change: adding a Dynatrace pricing guide to the landing site.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Covers the DPS model, the public rate card, cost per host by monitoring mode, Kubernetes, log/trace/metric billing, commitments and trial, a worked monthly bill, spend controls, a comparison with New Relic's model, and Maple's pricing. Vendor prices last verified 2026-10-19.
Regroup into six sections, re-verify every price on the rate card and
licensing docs, add a cost-per-host chart, a stacked bill for the worked
example, a trace-billing diagram for OpenTelemetry sources, and a tested
Collector config that drops debug logs before export. YAML keys with a
slash (otlp_http/dynatrace) now highlight.
@JeremyFunk
JeremyFunk force-pushed the feat/guide-dynatrace-pricing branch from 4921036 to 6d76cb4 Compare October 20, 2026 16:14
@maple-review-bot

maple-review-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 7/10 · likely safe to merge
Two content defects confirmed (missing screenshot asset, invalid Collector component ids); the copy-paste config is what a reader acts on.
3 warnings −3 · tests not needed · risk low

Adds a Dynatrace pricing guide page, registers it on /guides and in llms.txt, and widens the YAML key tokenizer to accept /. The page ships a broken screenshot and two Collector snippets with wrong component ids, so it is not ready as-is.

  • New /guides/dynatrace-pricing page with rate card, worked bill and FAQ
  • Registered in coreGuides and llms.txt
  • yaml highlighter now matches keys containing /, so otlphttp/dynatrace: is named

Findings

🟠 Warning · F2 · Billing screenshot referenced by the guide is not in the repo

correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:526

/screenshots/guides/dynatrace-pricing-01-billing-usage.webp does not exist — apps/landing/public/screenshots/guides/ holds only the three prometheus-metrics-* files — so the Maple section renders a broken image with just the alt text. Commit the screenshot (or drop the <figure>).

Add `apps/landing/public/screenshots/guides/dynatrace-pricing-01-billing-usage.webp`, or remove this `<figure>` until the capture exists.
🟠 Warning · F3 · Collector snippet uses component ids cumulative_to_delta and otlp_http

correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:112-133

The Collector's component ids carry no underscore: the contrib processor is cumulativetodelta and the exporter is otlphttp (the repo's own configs use cumulativetodelta/fargate in deploy/k8s-infra/templates/cluster-configmap.yaml:143 and otlphttp/maple in deploy/docker-agent/collector-config.yaml:123). Both snippets therefore fail to start with "unknown type", and the same misspelling is quoted in prose at line 517; rename them here at lines 112, 116, 132, 136 and 144-148.

Use `cumulativetodelta` and `otlphttp/dynatrace` / `otlphttp/maple` in both config blocks, and the same names in the sentence at line 517.
🤖 Prompt to fix all 2 findings with an AI agent
Findings from an automated review of commit 6d76cb42b38afdc1663622e7f5446ccffaf02082. Verify each one against the current code before changing anything, fix only those that still apply, and keep each fix to the lines it names.

---

F2 · Warning · correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:526
Billing screenshot referenced by the guide is not in the repo
`/screenshots/guides/dynatrace-pricing-01-billing-usage.webp` does not exist — `apps/landing/public/screenshots/guides/` holds only the three `prometheus-metrics-*` files — so the Maple section renders a broken image with just the alt text. Commit the screenshot (or drop the `<figure>`).
Suggested fix: Add `apps/landing/public/screenshots/guides/dynatrace-pricing-01-billing-usage.webp`, or remove this `<figure>` until the capture exists.

---

F3 · Warning · correctness · apps/landing/src/pages/guides/dynatrace-pricing.astro:112-133
Collector snippet uses component ids `cumulative_to_delta` and `otlp_http`
The Collector's component ids carry no underscore: the contrib processor is `cumulativetodelta` and the exporter is `otlphttp` (the repo's own configs use `cumulativetodelta/fargate` in `deploy/k8s-infra/templates/cluster-configmap.yaml:143` and `otlphttp/maple` in `deploy/docker-agent/collector-config.yaml:123`). Both snippets therefore fail to start with "unknown type", and the same misspelling is quoted in prose at line 517; rename them here at lines 112, 116, 132, 136 and 144-148.
Suggested fix: Use `cumulativetodelta` and `otlphttp/dynatrace` / `otlphttp/maple` in both config blocks, and the same names in the sentence at line 517.

Still open from earlier reviews

Production impact

Production traffic of the changed files (last 7 days)
File Calls/day Busiest operations
apps/landing/src/pages/guides/dynatrace-pricing.astro 105k maple 105k/day, 91.1% err
What was checked
  • Bill arithmetic re-checked: 6×16 GiB Full-Stack $700.80, retain $180, $1325.80 total; retention break-even $173.70 / $0.0035 = 49,600 GiB
  • All in-page toc slugs match id attributes, and /pricing, /docs/reference/ingest, /docs/infrastructure/hosts routes exist
  • New [\w./-]+ regex is valid inside a character class and only affects the yaml tokenizer

6d76cb4 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@maple-review-bot maple-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 inline notes from Maple's review. The score and summary are in the review comment above.

Comment thread apps/landing/src/pages/guides/dynatrace-pricing.astro Outdated
logs:
log_record:
- severity_number < SEVERITY_NUMBER_INFO
cumulative_to_delta:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

Collector snippet uses component ids cumulative_to_delta and otlp_http

F3 · Warning · correctness

The Collector's component ids carry no underscore: the contrib processor is cumulativetodelta and the exporter is otlphttp (the repo's own configs use cumulativetodelta/fargate in deploy/k8s-infra/templates/cluster-configmap.yaml:143 and otlphttp/maple in deploy/docker-agent/collector-config.yaml:123). Both snippets therefore fail to start with "unknown type", and the same misspelling is quoted in prose at line 517; rename them here at lines 112, 116, 132, 136 and 144-148.

Use `cumulativetodelta` and `otlphttp/dynatrace` / `otlphttp/maple` in both config blocks, and the same names in the sentence at line 517.
🤖 Prompt to fix with an AI agent
In `apps/landing/src/pages/guides/dynatrace-pricing.astro:112-133`: Collector snippet uses component ids `cumulative_to_delta` and `otlp_http`.

The Collector's component ids carry no underscore: the contrib processor is `cumulativetodelta` and the exporter is `otlphttp` (the repo's own configs use `cumulativetodelta/fargate` in `deploy/k8s-infra/templates/cluster-configmap.yaml:143` and `otlphttp/maple` in `deploy/docker-agent/collector-config.yaml:123`). Both snippets therefore fail to start with "unknown type", and the same misspelling is quoted in prose at line 517; rename them here at lines 112, 116, 132, 136 and 144-148.

Suggested fix: Use `cumulativetodelta` and `otlphttp/dynatrace` / `otlphttp/maple` in both config blocks, and the same names in the sentence at line 517.

Verify the problem exists at that location before changing it, and keep the fix to those lines.

@maple-review-bot

maple-review-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 7/10 · likely safe to merge
No new defects, but the 404 New Relic link and the missing billing screenshot still stand; the Collector id spelling is asserted, not verified.
3 warnings −3 · tests not needed · risk low

Adds a static Dynatrace pricing guide with a rate card, a worked monthly bill and Collector configs, plus its index and llms.txt entries. The arithmetic and Maple pricing figures check out; two earlier warnings (dead New Relic link, missing screenshot) remain unfixed at this head.

  • dynatrace-pricing.astro prices a 10-host fleet line by line at $1,325.80 a month
  • Two Collector YAML snippets, Dynatrace-only and Dynatrace plus Maple exporters
  • guide-highlight.ts now highlights YAML keys containing /

Before merge

Still open from earlier reviews

Production impact

Production traffic of the changed files (last 7 days)
File Calls/day Busiest operations
apps/landing/src/pages/guides/dynatrace-pricing.astro 105k maple 105k/day, 91.1% err
What was checked
  • Bill lines recompute to $1,325.80; retention, scan and synthetic figures are internally consistent
  • Maple plan numbers at line 512 match lib/vendor-pricing.ts ($39, 100 GB per signal, $0.30/GB)
  • /docs/reference/ingest and /docs/infrastructure/hosts resolve through the docs content collection

f3ce22c · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@maple-review-bot

maple-review-bot Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 8/10 · likely safe to merge
F2 (screenshot) is fixed; F1 (404 New Relic link) and F3 (invalid Collector ids) remain at head, both confined to a static landing page.
2 warnings −2 · tests not needed · risk low

This commit only removes the missing billing screenshot and states the monthly equivalent of each list price in the rate-card table. The arithmetic checks out; two previously raised defects are still present at this head.

  • Rate-card table now carries a per-month figure (or a note) beside each list price
  • The Maple section's Settings → Billing usage screenshot is gone; no broken image left

Before merge

  • Manual · Merge feat(landing): New Relic pricing guide #1568 (or add a redirect) so /guides/new-relic-pricing at line 486 resolves
  • Manual · Rename the snippet components to cumulativetodelta and otlphttp (line 112, 116, 125, 129, 132, 144) and fix the sentence at line 478 that calls the underscored ids current

Still open from earlier reviews

Fixed since the last review

  • ✅ F2 · Billing screenshot referenced by the guide is not in the repo

Production impact

Production traffic of the changed files (last 7 days)
File Calls/day Busiest operations
apps/landing/src/pages/guides/dynatrace-pricing.astro 104k maple 104k/day, 91.0% err
What was checked
  • Recomputed every table, chart and prose figure: bill total $1,325.80, 4 GiB crossover $29.20, 300 GiB retention $180 vs $6.30
  • $173.70 / $0.0035 ≈ 49,600 GiB of scans, matching the retention-choice paragraph
  • host-chart__mark reads --label-w/--amount-w, both defined on .host-chart (dynatrace-pricing.astro:596)

bdbc2d2 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@JeremyFunk
JeremyFunk merged commit cbc6710 into main Oct 21, 2026
19 checks passed
@JeremyFunk
JeremyFunk deleted the feat/guide-dynatrace-pricing branch October 21, 2026 13:51
@maple-review-bot

Copy link
Copy Markdown

Merged with 2 steps from "Before merge" still open. If they are done, tick them on the review comment; if not, now is the time.

  • Manual · Merge feat(landing): New Relic pricing guide #1568 (or add a redirect) so /guides/new-relic-pricing at line 486 resolves
  • Manual · Rename the snippet components to cumulativetodelta and otlphttp (line 112, 116, 125, 129, 132, 144) and fix the sentence at line 478 that calls the underscored ids current

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant