From 3801e23493dc70cad1e4d2193b818d61225b3ca0 Mon Sep 17 00:00:00 2001 From: Heston Hoffman Date: Tue, 1 Sep 2026 07:33:23 -0700 Subject: [PATCH 01/21] Switch gif-checker to a shallow clone (#39570) --- .github/workflows/gif_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gif_check.yml b/.github/workflows/gif_check.yml index 8adbe391df3..81b444c7958 100644 --- a/.github/workflows/gif_check.yml +++ b/.github/workflows/gif_check.yml @@ -21,7 +21,7 @@ jobs: - name: Checkout code uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: - fetch-depth: 0 + fetch-depth: 1 persist-credentials: false # Branch Name Validation to be run prior to workflow From abbca44cdd372396b696ad13e52650a29139292f Mon Sep 17 00:00:00 2001 From: Racheal Ou <144172411+ouracheal@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:00:20 -0400 Subject: [PATCH 02/21] changes to tiers (#39613) --- .../en/account_management/billing/metric_name_pricing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hugo/content/en/account_management/billing/metric_name_pricing.md b/hugo/content/en/account_management/billing/metric_name_pricing.md index c0b313f34ca..c196becf087 100644 --- a/hugo/content/en/account_management/billing/metric_name_pricing.md +++ b/hugo/content/en/account_management/billing/metric_name_pricing.md @@ -42,7 +42,7 @@ These SKUs are mutually incompatible with the Timeseries (cardinality) pricing S ## Pricing structure -Both metric names and indexed datapoints are priced with marginal, volume-based discounting across 15 tiers. Higher-volume tiers have lower per-unit rates. As your usage increases, the portion that crosses into each higher tier is billed at that tier's rate. Previously billed usage is never repriced. +Both metric names and indexed datapoints are priced with marginal, volume-based discounting across 5 tiers. Higher-volume tiers have lower per-unit rates. As your usage increases, the portion that crosses into each higher tier is billed at that tier's rate. Previously billed usage is never repriced. {{< img src="account_management/billing/metric_name_pricing/marginal-pricing-tiers.png" alt="Diagram illustrating how marginal pricing works, simplified to five volume tiers. Each tier has a per-unit rate, visualized as a bar height; higher-volume tiers (right side) have progressively shorter bars, indicating lower per-unit rates than lower-volume tiers (left side)." style="width:100%;" >}} @@ -117,7 +117,7 @@ A Distribution metric that submits 100 datapoints with default aggregations is b You can commit to a usage volume independently for metric names and for datapoints. Each commitment is priced at the marginal pricing tier the committed volume falls into. The full committed volume is billed at that tier's rate, and marginal discounting does not apply within the committed range. Usage above the committed amount follows the standard marginal schedule, starting at the tier boundary immediately above the committed volume. -For example, if you commit to 15,000 metric names that fall within Tier 6, all 15,000 are billed at the Tier 6 rate. If your actual usage reaches 75,000 metric names, the additional 60,000 follow the marginal schedule from Tier 6 through Tier 8. +For example, if you commit to 15,000 metric names that fall within Tier 3, all 15,000 are billed at the Tier 3 rate. If your actual usage reaches 150,000 metric names, the additional 135,000 follow the marginal schedule from Tier 3 through Tier 4. ## Usage Attribution From bff97591bcface64fe0157b75a2b638dbd1f6220 Mon Sep 17 00:00:00 2001 From: Brian Deutsch Date: Tue, 1 Sep 2026 12:01:24 -0400 Subject: [PATCH 03/21] [WEB-9081] Move i18n to top-level shared directory for Hugo and Astro (#39589) * [WEB-9081] Move i18n to top-level shared directory for Hugo and Astro Co-Authored-By: Claude Opus 5 * TEMPORARY: pin cdocs-hugo-integration to branch build v4.4.4 to test shared i18n in CI Co-Authored-By: Claude Opus 5 * Point cdocs-hugo-integration at the released v4.4.4 tarball on master Co-Authored-By: Claude Opus 5 --------- Co-authored-by: Claude Opus 5 --- .github/CODEOWNERS | 4 ++-- hugo/config/_default/config.yaml | 2 +- hugo/package.json | 2 +- hugo/yarn.lock | 10 +++++----- {hugo => shared}/i18n/en.json | 0 {hugo => shared}/i18n/es.json | 0 {hugo => shared}/i18n/fr.json | 0 {hugo => shared}/i18n/ja.json | 0 {hugo => shared}/i18n/ko.json | 0 translate.yaml | 4 ++-- 10 files changed, 11 insertions(+), 11 deletions(-) rename {hugo => shared}/i18n/en.json (100%) rename {hugo => shared}/i18n/es.json (100%) rename {hugo => shared}/i18n/fr.json (100%) rename {hugo => shared}/i18n/ja.json (100%) rename {hugo => shared}/i18n/ko.json (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9a8677f59fd..7851ba54c67 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -9,11 +9,11 @@ hugo/config/ @DataDog/corpweb hugo/package.json @DataDog/corpweb hugo/go.mod @DataDog/corpweb hugo/go.sum @DataDog/corpweb -hugo/i18n/ @DataDog/corpweb hugo/archetypes/ @DataDog/corpweb # Websites Platform -astro/ @DataDog/WebOps-Platform +astro/ @DataDog/WebOps-Platform +shared/ @DataDog/WebOps-Platform hugo/babel.config.js @DataDog/WebOps-Platform hugo/data/reference/ @DataDog/WebOps-Platform datadog-ci.preview.json @DataDog/WebOps-Platform diff --git a/hugo/config/_default/config.yaml b/hugo/config/_default/config.yaml index d769844efce..901f861c4be 100644 --- a/hugo/config/_default/config.yaml +++ b/hugo/config/_default/config.yaml @@ -146,7 +146,7 @@ module: target: assets - source: assets target: assets - - source: i18n + - source: ../shared/i18n target: i18n - source: archetypes target: archetypes diff --git a/hugo/package.json b/hugo/package.json index b58d89f07df..7de847267eb 100644 --- a/hugo/package.json +++ b/hugo/package.json @@ -53,7 +53,7 @@ "@popperjs/core": "^2.11.8", "alpinejs": "^3.13.7", "bootstrap": "^5.2", - "cdocs-hugo-integration": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.3.tgz", + "cdocs-hugo-integration": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.4.tgz", "del": "4.1.1", "fancy-log": "^1.3.3", "geo-locate": "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/geo-locate-v1.0.3.tgz", diff --git a/hugo/yarn.lock b/hugo/yarn.lock index 4afb78006e4..f59a390de12 100644 --- a/hugo/yarn.lock +++ b/hugo/yarn.lock @@ -6663,9 +6663,9 @@ __metadata: languageName: node linkType: hard -"cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.3.tgz": - version: 4.4.3 - resolution: "cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.3.tgz" +"cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.4.tgz": + version: 4.4.4 + resolution: "cdocs-hugo-integration@https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.4.tgz" dependencies: "@prettier/sync": "npm:^0.6.1" "@types/markdown-it": "npm:^14.1.2" @@ -6690,7 +6690,7 @@ __metadata: vite: "npm:^5.4.10" vite-plugin-singlefile: "npm:^2.0.2" zod: "npm:^4.1.12" - checksum: 10/dad83b2612cf03ca3656f63bb0dd49f8ba5c47a5a8ccd06b64361f690dcb97a7f1b0c7dc397c80263b0c8dcc6cc7bf8e752a0cac148f1a263492098b4e9b6e49 + checksum: 10/4997532c5a19c205293b946ed9ed6b651accb52e8b1fae3a61af04d0cc42938d380b70a2873b7b90ed7cf0367cf316ca4a0fc89d0ebce3887a01ada077d24143 languageName: node linkType: hard @@ -7741,7 +7741,7 @@ __metadata: acorn: "npm:^7.4.1" alpinejs: "npm:^3.13.7" bootstrap: "npm:^5.2" - cdocs-hugo-integration: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.3.tgz" + cdocs-hugo-integration: "https://s3.amazonaws.com/origin-static-assets/corp-node-packages/master/cdocs-hugo-integration-v4.4.4.tgz" cross-env: "npm:^5.2.1" del: "npm:4.1.1" eslint: "npm:^6.8.0" diff --git a/hugo/i18n/en.json b/shared/i18n/en.json similarity index 100% rename from hugo/i18n/en.json rename to shared/i18n/en.json diff --git a/hugo/i18n/es.json b/shared/i18n/es.json similarity index 100% rename from hugo/i18n/es.json rename to shared/i18n/es.json diff --git a/hugo/i18n/fr.json b/shared/i18n/fr.json similarity index 100% rename from hugo/i18n/fr.json rename to shared/i18n/fr.json diff --git a/hugo/i18n/ja.json b/shared/i18n/ja.json similarity index 100% rename from hugo/i18n/ja.json rename to shared/i18n/ja.json diff --git a/hugo/i18n/ko.json b/shared/i18n/ko.json similarity index 100% rename from hugo/i18n/ko.json rename to shared/i18n/ko.json diff --git a/translate.yaml b/translate.yaml index 1b7e6a21268..a5a20a937d5 100644 --- a/translate.yaml +++ b/translate.yaml @@ -42,8 +42,8 @@ phrase: dst: "hugo/data/api/**/translate_tags.{lang}.json" - src: "hugo/data/partials/*.yaml" dst: "hugo/data/partials/*.{lang}.yaml" - - src: "hugo/i18n/en.json" - dst: "hugo/i18n/{lang}.json" + - src: "shared/i18n/en.json" + dst: "shared/i18n/{lang}.json" - src: "hugo/layouts/shortcodes/**/*.en.md" dst: "hugo/layouts/shortcodes/**/*.{lang}.md" - src: "hugo/layouts/shortcodes/mdoc/en/**/*.ast.json" From 7d709c4a0ad9caf74550e2887ab7e2014eabd942 Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Tue, 1 Sep 2026 17:29:00 +0100 Subject: [PATCH 04/21] Document the notebooks MCP toolset (#39615) --- hugo/content/en/mcp_server/setup.md | 1 + 1 file changed, 1 insertion(+) diff --git a/hugo/content/en/mcp_server/setup.md b/hugo/content/en/mcp_server/setup.md index 11b1fa3b658..1083cb6150a 100644 --- a/hugo/content/en/mcp_server/setup.md +++ b/hugo/content/en/mcp_server/setup.md @@ -690,6 +690,7 @@ These toolsets are generally available. See [Datadog MCP Server Tools][49] for a - `kubernetes`: Tools for searching and describing [Kubernetes][51] resources and retrieving manifests across all clusters - `llmobs`: Tools for searching and analyzing [Agent Observability][36] spans and experiments - `networks`: Tools for [Cloud Network Monitoring][37] analysis and [Network Device Monitoring][38] +- `notebooks`: Extended tools for [notebooks][54], beyond the notebook tools included in the `core` toolset - `onboarding`: Agentic onboarding tools for guided Datadog setup and configuration - `product-analytics`: Tools for interacting with [Product Analytics][41] queries - `profiling`: Tools for discovering, exploring, and analyzing [Continuous Profiler][58] data From 6c04b6bb089e5f9ba09f6361ff88b6bdbb82fec7 Mon Sep 17 00:00:00 2001 From: Chris Hansen Date: Tue, 1 Sep 2026 12:36:18 -0400 Subject: [PATCH 05/21] GCP-3846 Screenshot for org/folder resource collection (#39600) --- .../enable_org_folder_resource_collection.png | Bin 0 -> 48445 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 hugo/static/images/integrations/google_cloud_platform/enable_org_folder_resource_collection.png diff --git a/hugo/static/images/integrations/google_cloud_platform/enable_org_folder_resource_collection.png b/hugo/static/images/integrations/google_cloud_platform/enable_org_folder_resource_collection.png new file mode 100644 index 0000000000000000000000000000000000000000..cc02c5a75d3cd2bac006110508fd80c6caef0798 GIT binary patch literal 48445 zcmbrkWmsLyvM7o}aCdit>%={{LvRf?ad&qJ?gV#tcMlTW-3jjQT(Ztyd!Kjry1(A| zz8>A9tE#oCM|D+&DaeTGi4wkuvKOvA_|fs zBE$;zHYR44#vmXPVTsAmD#}Zk!4n;aBz}SiO2X$7RK5wwn$*)}kueZ36a#_^-w|-| z{ZPJ$LL`C`6i{;(`$j-2_H$5EI};!)Dh&4cBP6)^eX-rExLf2jc6G9JNzur-Z^E^*}C8Ed>qYgg)h@S_D`0h}nBZnlBhAUdUyT zL{-FP9XyrrBc&RdvbPmvQ_`}L8WbcBGIxfB^OFSO^o=$q7=xbg1yrDplCqjT%9-FI zau^CJZ$=j3y-sFe*YAknLwJ8(RT-)x2A%^(EU9o!Sn>`t4~5= z#zqsFlvOwJ)x_3zoA}o)te33m)OVk<4CQcHO`>L$gf$#SjXfSDukz{cvUXfMlgWd# z#$nS8byH0b@WWMuCH5k*m~k9NF~=5&ns`jHm278P z(_u+wqL4tHkiJYhFvH1-bD4?l<9fG_F+z%8>=bf<=k=w!5a(w@MlAQ`+ny)Jb}hV~ z&zENmZc$31*`^{doWUN7+?i4bi)x`6`_=mk(f9C~$Afo$Eu$qlhSXbkWCT)w3LR`= zzX7B_&4pN;#zS{T zm=Ja-)CedvxxWfASeX#wBFvQ#$s&}qKdb`eU4W)71Y3ZrEo?eCR?k;k@S6Z=eGvG7 zWPNx~5Hw_nEn*hYAQfU+2_zQ3a$@dXFgM{h1sHUMpTeJFKu|@vCMk=NKl^>oHZMke z!r=at5x^kQG06u+#tm8**3(Cq@&9e$q)wy@Gh+aC0v*ybvI*gekq)`vqqSw<48;%M z)V;r1W-Gu8(iJ$U2tpC0Bx;s3s^Ex@h7tN*=x3g2u~RXa3Qj51T&TIYQ=WA$ltPt4 z)|5IMhO9_hPR1nvfh`+!2W$tTPGF_rLax>%)+Asm;DGrC0FRRw%-qBIO+AHL2F!$= zl1Mq2E0oLcu=mC=n3M-R zsNv4E-DC4wb6;~^Gyf{n8JaF^RajH6$Clv*m?uLgyk4|Gz@!8E;AAm5*iZ%RI1VS%mY+fW)(}M zl>(HqB<;x!QRC|q$SJKT2uPh`&SKYNhmE{y@wkH1<<_Mt$+D;fD1G7zrP8G9@>`~l z3up_p@}KkdMv#qejIdcojBAa48AT0iC%b(iQMjRzflaH8Qj+A7Y!SgpF8HPS3+h+l zFU;Zj5#1z$*uLSz5w~Anosv?Ue+i6m=r!j`b28kPx zBurbRlO1VRV)h6OYbb4Sucxd>sPAiVXh^FkIz)Cl;J)N8;LhMSY)x$iZRKi3XuZFM zad+$x?a*;wb0@k*xFNd*95)?BV^iZ*!`H&&!V}`gA?P5e;ml*Nv-ILlMaD(m;jS?S zM_NUqMbbuArFBy}Q+mdCP<9kzD?=;$nMEEFu*Tu^(e;)0SWaqBt#0rxw9mcV3aCmvmtZrW@bv~S30RRvK6RmE(hb#8f%NE8vB zHQ}7aL+6AU@^ujRy5U~u*rO+U7wbrE>%MIBBMS>2{a-_C*<#t8BZ z#uMELx&HG(lfI>`g01mI9r8#_dd!)E`N8+er%5D(GlQQ7NWBPsKesYaSWu+Nj!5~% z+(nZ_5k=`EH1V9+HQ7^%)-VIY!$P^RSv&h3hQ}%Tq^*+o7&|&f^_NnOlatFBWExu`N)AGmb_4vf^#;YXWFmo|IDqN{Z8A&OB=4a=)%@>r5p=+*IGW?yI*ddH& z&}plmxKo-@HX!Pq8(^leTwCAh=$5b8O38u#PE0szJ6t^aP|yACwuZgd0>Yxw7}wN# z*faBY;;l3XcUt_~kG#Y>W>Z^wL#tbEpw4RR_$~MG^*oZz#kxXUY%{al&Up)F3q{L0 z;ET2Sg!05n4B#f<9tq)b`Z4!~CoO|R?KSi*_T6v-^O(M^$&+>yQ=6uqnvOP|ZW~?a zarmm}Dyy(@z~+>uk#@Zap-r~>^v-$Vw1J|QLW4qt2h6!XVOk1KYU5nH=Gy*;ti~L} zHp6A5pZ)t)<63K5(`jb8MEOCLW0mD{UZd$qX0%6($MapwsYSU`)#vi3E7te@wz>5= zdiE!FB$k$uvIz5Md=BJv09rwZe^z2M(pr0m-)_^9O7W8uN zio5(%=82_?xxi)GqfLmMSw<;ug>CBt{H4tLkCHkK(?Om7<|a~NS;X43K9!iqKL zD)3xq)}wHu;e1s#It|OF##-l8Z*{|i=jCpVNBSIo_4hhKOS1j>*lWZy8WIO@KQEoD zsGG{2`l;O*k(dt~!XiRC;SF~C9r?|00Ll2|NRgR5RmgQ_Y*r%Qf~PLv8@s*vti{bh zI0a*{9;}{R`>%K9y9vH31U;hnk<%&*Lq)?r8&R9Wb<7TBH@>v zx`+I$k~`K{hx_Cq#tAA_`EAOPE?h6G_r3emEtR9$gc$m76ZK%!{aX*NAnSx+zW4|r zw@@Jc6m_q+5khtEpG;t0s4`D`OyLi;qZ~nyccFa62kDMUY9m(4G54VKEiA$&ZhKk1 zp6eA6!8bF_tVHgK$~j@*%AmYk>@ZKR=3*ky9P3Sd0G}!OP>XIh1vLK&7 z$}k`hptvBAA0^O_#1D%1@3I&uH3;}$^*>f0X}JGm;Yjh2m(zN2)HXKrCWoZ%oX=z{J2r$`4CSOw4OluxFUWs-{9lyn|DojK{Qpq?FUbE*`PISLUc|=g zqf1Br|7_R4y8Yk4e-ZLB{+apzT8aNz=D%t`)|nrcm+{|w_VH0<Fi#>RL&&ht2acJX-oL4rT-qA=*qx9ufzY($=Yg#-jz70?GBYl+i#B=b2)5% z*KS59O|H^Ki>89ovPVn)P9#rmm-`S$Y9=fhPa10^k*Lm6Buz>aPthJ$wnX#aL;Y*= zL-b_JrU6w_ld*8M$D3|TVO@N#J`epAT!^(^91q{MTTyvJou~Uhk+VxU56p&9SUly& zQCZjzC({S*j-?9Q8_7@($B|dtef#I7goqG~Ks$9HUR*&+PoC3~|FxV^^gAoN&i?Ae zxWzf7VZo0y4#fP7ZqgiUI8jOpOM=$;Li|cr*!t%`^IJ0t7_(IUy|6`x?J2WH?PW8n zW!zb__H+dpkmx0N8VSSW{ACE%2wj8zRk=_g)P ziQ9u!@v~JMr0mdf(l|N7FVol;CfXvsrvDe?V}VUkF2h?ly1v@|xZ4L^YTqx1&_ld* z%Hn({0MAbh!f|U$<(f@j^=#VlOx6Vd2gzxsfDsJ`#v4uOc&QZ9!A$#_*32RCe3^#8 z-J~-u++})~qbm_iMWcvdBq?SZTfxb;dau!6aysCB8LoPOOnqCSxGGGtMmURw{W2}d za=mgFp7{C?OxwNoy;~OTR6ix0QQJj@a&(<`4Div4Jzj7DrkDR!)=B*TLX4D zog*w?I#D8yN|O2$TEBAcm~%S6&zC6DS8T6QfG}+rtl#P#0mA%-7kdQgG@(_dn$(^& zS(wmb#s5Rf5WxVl^$V5)6j?GG6lF~r5l$#SK2)gXpgX#*u+Wuqw4c$tt!Dt2CZ#!k(1smRjuYMd#M zIeD$~;`pbNtyvl+lx3<={`$rk`uDYl$8I2!)p7MWDK!T!bJ2W&D~F{FTP%b{4z1bop*Zeu7E~-yU!2jiJEuF3I~fbq3vb zYLSq4q%&~BlCK@#>n)e5rI^aqZ<}ONpYn`GV{~x=#k9uKYj_3MhDZ9=j*Pmk`93u9 zR12~;GCI#)o*9xGuhc#j+VqfcyYU=jX%csq8sOGvH9J(h4NU?HLefog1o@sz)1X-v z(70gCK_L5Y7%^)j57Mb@G}|uZp(WBGI;MB4khQj#Sx+qsWNQ>^Q72Dt2Q@oaTZmDyaRLnYBt z%n4+&$A*ba9;!O;EXK6=C1(*&=`}6wRQ6IIaRBfBct)~0f~GGpL}KBYXQ=M=dA)l5 z4BR{QEv^0H*Kr)Jsk7Vm6ybEa9r*o3(+wYB!KZ44I6Rp?`4t**_z`Yj=t-FTQ+=74 zQc=?OPgvEIYfsIq)0sA|lj z%gJTqM5Pkx7!Z!$6V{Qg7}HsR&Wu~nlhso0nl*rc)b@3#KDtuv`>N84q zT3;of$L`E0G~GZL! zbV6y-Jw^G~BcwGBX%TtSSuEI0wq!9_agPSY#j$#D0Bee%YzJ)0zBt-)EyXGq;OCrXd$?T zJs=E=!D}-aj$p|Z|72i&{9$vQBfK7wd)$hCwcitV-58T|av1K5yp~u_2+RG70GKk- zua?Y;Mvzc;KAbiN8p@S)Sv)x&2JZD>34#H|WUeKWB5+u!4L+pGKBxbaWg#LFA0>H8 zGJ{?me6wz*hrMKLy%|}|lTX+kyMbVtY350V(;`~E9%9cq6GpvgOYMHl&Ed?GrFcrT zGkM|8DtR5l%^}6GWEMlkZUEd&Z~?J|JnwaTI=_QhL(loEO*4An-Y*^ylykSe z6OBi&H&Qpd{xn>SX0bV`t0!s3Z2CiV`6t&IqEsVVg!*lC_n4D77$R;@(TN<@lgw4F zTh}-7+zABQ6=4C3Z>ezPQOj)RtB3*QGmM-(^~Y}<4_RL9lIu8+v4jBAW%L_a>ke=1 zDX|Sj;)`{>zP>ZOA-whX*+bR~H31kUdwhq_phvN?4PLV;&!7E}tx%I+pOJp?YbWpc z3By4t!}{Bl@8q3MIHteaZV6XguGNTui%sRvac!t=Ktt<6;Be;bun`P=3ZkNt%S^~< zyFYp%&iNeJZIuoeiy@w;!{o#7w%?F^n|Zb)4_-vlx6%EeUJT*6Wh3wi4`&jIHhYZ_; z$N9A9l~HOh0;j;X2MmVku4)8wVrO-w&Ls<9M8Gb>bT~nBu#HgG~r-jk`|xMCb369oOF}yV^$G%`!MM&p(3~c2WdFcg*bVnFzv;B)aug8SonZD-5^mPP_sriwGK&oIp(s_cW&FZy3rYF zZR`Eu797WKU9TRe->1vu5O!rfx3b z?Zd4LSeNsXN~8v59lZMtaX|?q_u8%((s7q$D}v+i-0|{4eA{#5!T{JsS89J7m*@}x z{APqdi9R^`dRx2dD)(rR3Z-H`SI%57NYQ|lRHYvIas~A854=)XkUNN;cjpazjuv?T z>>xNU0d-jQgW7hECE`5Oz z0O|TAIas64EDn)9k-DD}SLBraL1{<5Ok@S`j&8vF_L-(HV)Zy--fz7>zYmi<^k284 z18wOrXw(&I&TniPJCYf5$GGXV+f_PK9!{OwE2#^~J%gB{aPoWuhjoCsFH6ZA#W4YX z1&b4CMK2&%P12BPkXOHB3D;UhIVZdjI=fJ&_L#H0FB{t5FR4l)Urk=HOE$l!%E{nJ zKIO>^BxBGn3Ee8Pv7b36k!t#B3k7r_hbHMSReua&{^ZL%ZPhUgnX6!4}${%CfHj?Uuhm5o> z67zV?0`HI`GmMJzl)US;3CDQMTZ||)K5zk}r;80*3($9rgJ_c4C8$4lL1B(odv4x@UIMGA zI%tg_l<-_{+@oDMIWE2GI%Y}$EM%zKaeHdgOl2+V&L zO{9}Wka|Cjn$^?JMt)}|0N!>tG)NU(p=@)Bh5+ANEQ2E6Ed61-81!1o!I+{THMQ!^ zrXWs>QFB@sh|vqV9^_fQq zHPHAyn!wFEg$jWMAw5T?KTYY z0R#EjjKbi#_tTfpiL|u$1{E)sy`ra+aybBVH+To zjo{_(*{n53`qP*JB9OHtC$}&ikIh;k1Rgg#c07ZF`$J8kGoSu}8v?r4TvEglt0`?= zh%?;e99dd=xmP$$6N_SH4X=^KNF}RCI%J{HCVb_Es)=R|)w1Q?zAu7{v)WSFrG^^k zKDJU~61?!^ai^&?=+1?=tEk#w-CtmLSctKBm|T*z;f`)~$R2zw(j~Gqkphj4VU-OP zEiPRKhlR9zMPzZZQEBWxc|#_)WKn?-lAoNk-!JetJe%j?R`f*VQ)33tZJSLOb{T}2 z&F)ilZ%n2abg|p9R#hi;MJoFjqF_SXI#G|AB%j?KJH6s=-(}~glDc<^S_w?aMoH3^ z786H@`;@QKW1$I_hmVAS+~;;p=W)Q3>eLA-ddb{N|JlZW%S~5^#;vMk4JV2 zH}u8b@gK^c@Yr|C(ei}jho)XOXhzg3VgZ6M*w~dykM;+7UQ!o}(R3I!Kh8Jyr)={V zxfWh=VW!@&3wMaNq606Rh$u_ss~ix%-9N3689$XT5r<*`m{ywmm7G#48o#Iaw{PwDA}28y zlj#7cksW`Hp<0cPQ9&)Mt`CrrT z+-^T(unTk7F>@N@WwQ5exQcTK3p!#N20Q8Nm>~%D%2+-;dZ{lp2Nc_RdcEC}%i0a> z!$H!Q5o2fX@xje2S1zFg?cbEEFNo_;wFA~HVw9mh*#8#jZ+L$Mx}_|7sG1QVr0haJ zUr)l9>nTsDBsu+MMw{m|LhkT`Lsn(-Z>`>EGv&6o$Ly;(fW-}1Zc7-)>uxd4bwdep z)As$i4dPTLxUy;7+6$A0iLNSYIJqQh-~IzUTZ=#mN1{o#{JocU9tG>ySmlE@PAuG^ zxJhpG{@~bDadXR*J>Wsv`;4sJFzV0W&s72ra*9gBH@a+>WI20#;hI%1llWJxl2ZU; z?Q6`poc^m==r(h6?0vAeP>xpvQ{V0=KgtlwK-n0>Hl5?Wh2cZvM~qaLIMuij=veb$ zP|s$?@N)ct;0lA|=Y)QhG8M%Xlfj;e4YyS$CF$kUsm{`zs%Tm6*F6pVTt25|M~u(a z9gve}QIqBvLut?t6bsx_vl%oiVv(;hZ#_`WY!C#qXUb^Qiw|-7v4NHwpmC9r6oARM z(7TKGjxx7Fn*Nm6nI;31lk$l%WGnLniCOHRA3OQXF!DS=0WJo0tf(*>W@{j&R)>_a z8@?uuIZ?)TG;oH^b#pS=cJEL#X<9FR(vh|V?&35Mk zwxK78uyG#YScz0b9-^|rZZD|~cuWkP3NHSd$m{J)7c|3&!oRkWPkkD#pkt+Sy=M|X zC&U*5u_S3BCD?>IVxRjXLpf@^4=%lHo%_Vtv2@uiQlmiU{e;1yR^+KXD+2Qd12Vqi ziC0hssn(mPym%FtaM2SIo~$ZDg3sP{UY<#G5VB9otcm-9U2-~~1X@BI=DM*2aYt!^ zf^U0q?kO*UkPbT<%G9W}0}Uuz#qAI!;h$r6f;yY%1!XcC2hpcY+CpiES?O7SCDYQI zk&tK4C;CAwQJqKPlFeqD22=;-r@togYS`;2JD;sr6fQ)h%d@qssC|xJk>d&KekvYoGv7h zApt-yB-!B>mTBpnUPwQ@q%Jnhu}ye=!zc&E-pDim4Qp zS}s!~Tcx}UL8^Zpr>F<{0Mo)ZSOr`mhc!f1JV&&xYtzFkjH{mu8>Jx0%>q1|VbzUC zUrq%6wyqE-ks>oqWj27h@pmnTMjD=&eFD!J!&a1SKyNBjo$W+;aLu4wa^+p6uMv-t zWK@ZJSu%_QIvD<7^|-UWx8t|%o4f72BNj-!p#^-{Gp}kwh-Ouo$wyYZZR(1Q*NvH#@l7;lP=uhB+@J{~N*t#0o95*OEiK?;`ay3Y&Y+1^ZCk0zn=W%)jEe@=(d*s`qo) zDKjIF=MsAs`%MOH&~cGX&4bMdoQDgjGpCr~a z=Ncjrr*yl_>f%()BRzzhMTA8wQkBy??f5;qo=BI!Lywj>oh}xn%08XPSMxq80FcWD zdnM-V9s&X87@sFeG)!RmQ`@dH*^o>{Ei@&VfI3bQr_ASF1@n|>MV?6XyHu$~uE=z9 z#WgNRk}Q25vCUKM$w50uIzTU<2Vps>(@q(_q zuJYX@=j^$f#e8M5i;$%mw+@z3v?`>w4Zgp;+7AtfeG5X5!r^Z`L`UvjnsyhtAF@m1 zX_(Qn7e(|6stu4jZXL0cFu{8@;*Y%j#d_+AivwVi(`t$~05rrNmr7~U1L*|EZ+WLc4 zLA0xAL{FAF%5FT`i@u#wE^8+@&v)HTJ4l_m@gEN~grQ8)!0)zlAPcu$F#r&{GE4;i zZJ~3)_VW$9lR-V50IY8v1$Xg<-Pu%ySXcMG+gk|SzPnaTCakx~5GtXFuDCGapBuh< zIa}1f67-#$RSu8o8Uo!lK1_7GZ9eCjOeOR=U0m-|M%O>Ef)9hM6+5`EZqPc&8Al(% zXl8@EuDV=Qz*~&QZ>qc55T^>=h`l0;Jh>QT>h`shd+ZJ@9=8_d3xHd~NBbua^G{^U zW$(IGn)K$ZnMX5lB@Ns(ezujv2;A3^J|PLLvy(n|m(UlNa5nQN_{Z%GAvE^U{PHD- z=2@9YWuI!UwT!CRX2^5$aVU@Z?gE;=(jHJQ&r;q7Zu&3l19EnpXg0HP=)z<@kmbyS z9QL0UPT~e9U+UjCvDoG50q32e91Rbn8M0T;w?#xH4gPgMezW7}%920=>T$9q@4v$8 zpG-RWI=y}Jk4Q#7p~qUk_ueJBeRR}|-*>R=xSygjPZT7Qw9d!bjr>V8<$W`3THnF; zj?Z&NfFQW%rDN_H2FKoQojZ1S>wTob{#dD1*J|EPy=V&?1b`E4bVqVkm8~Z7&PJ2a z#d`gaQnS5riA(ZwawkO^#Hj&(y@uKkU1k&qm+MJJuQQO?l?kKJH!#&S^=#UzmjsIK z{2YG6!CYRz``kxLclExI<|OSrT8W;vp_!=tv9y)o zC%Hs;@*CvFrs_0YZ$tVdaU0zJryz22nj4z8i;4vl!|d-UMz%G85HdLC_>vZei}x<<0rb5NDy?s1dC7)Ix4X}I>YLSbMrrhPA0U;MIH%b zeIFt{h#zuzv2Ry2V1!M7&A z=J@bDhI~566tYLJS$>AA7lDIgtz!qlL7+b`pU&-K8Gid>*D#+$JE8z_Lv)L@~!2UcD0eyXW7Um8_q9wi~45kLRiR&$C~|NY)wk0v=jy@TFjds2bsA% z5BZ9cYPC^`>d7Sv6{*8G!jT2zB3*ds?cFr@N$t)Yq>3oY}irAvpNodo$xL~aw)1a^? z>gnJ!()8-mtc=_bCOKJ$wf(lR#%GW7dvxbXmn8414PxZ!=RAQacLBhrB)i2ue`cy> zYKeEG;o*0|Q~DXgng`Nlc>kNtJg=bC1}GwvJ4ZCDR<2o#DNz3a z2VCuF%HyqYXp|PD5)05E+#4;*rEhje#02EBIKxa$oBFuM62ILi6~;&JWz= zi#ziVO*l&-;aMP6EDU2GWQU~6;Aspe-rcSt-$pOAm1Es^@n}w%BA@pj`t@zPG2cUiXqMnC(;;!7IF0hz9?^81g*Tk2iMV-ByIUXw?G~K>sX^xCa^Oy`RM6ECtcXmfpE1NBq>gf?PvHgv`1_Y+ zAQFCW`t`LVp-hlgY}LW0B@(^qhp|p)2V(T`k%w>n69+I);4(?Y{8^MbpSrW zW$^D1mC#cd2$_1U3LeTT?+y*Q%r;bu<$e`S!>8o1Mog~H2+J;X>bk+*TQ;HwF3F>2 z@k0mR#^f$+*KTcL9A0i+FGdMs1kM}b=Q~1uB6^nM%3GAnY+5JbtG{Gyc6B7`ajL^9 z-B;6jMAOpf#qhIyeRWo2;$Lh7h7nMG@+R223@^Xbi)0_>xn0omkJh;H1D=uY&#DR& z*q96SK8FkB$|`?^m$I;<4=1dMYRdQfM068?^?)2Ak%h9tvVRKf>aEwJ=XRb89hAkL zkB_y9x^MwDp99|O5CW^aQhC$@x_0*S#6LgUqn$!I2~i8Bc%n#|H!otM-X%i`~YD8j5K&X7bWi@8M81{H`mMMIr80?sA3u@9m& zm*n~1mGThdU77S8-`d?=C7OG?t;msQ*^;PL(R(%t)xi1#JW;H~%za);grxAza^J}z zXlKdYu~K)N&SrIFLkM!mYI=b)^yeOeg9OiOE5g1DIa#G>n-P_;c^e+ejOWN!cQ}x^ z_&c4|ca`DyrXj#0ab#9=ID)H-3$-fTC=iEECV8GP;-A8jn{Qjl zPWyzwTE4b(NiZSP?0w=^l*qT?v`H9jFC+}EF$CKBKF)Z%8HPJMSiDsmYuPmot{CVy1z}i_h{Qh`-3sE z{Yk-YIH|{_bITT5{HjN`J}*vuMYbMCKWr+(OzA-91;y$qt&{zVY^j4vVoa(ej7~K_ z8&%xg^gv{E?DMeS2Y(}weu{V5qC7@=xa6C@rL18cecXzpb5sx3 zx3^|`FFcBf$8Y(4|b5kJ{^J9M#RD<-Rn>W``8ZH4a|Z9uU_I_oW_bU&>AIm@-swuuPg6?RtJ1;a}-zbYu9$Jk079Kt{2AaP7j6pU0n05snpKl+#l6 z9oSFzp;^i1m3WzcFJ-uI2q<|ZjayB7m8q9JZXg1jS%^4CfwS9YJSNd_K`Rm>EU? z22YI*GgTM^gn__-zZwuUZy+8T3QZq-gPrkOLjr{`RD7WAPw?LG$|NiwRGi$DhxvVs zncG;-Z@6Z4v@hSkTHF zD+|Uf^vN3m0bjE_b3l0fusJp;Z8dMcgqDjY1DlSostW_@5J~VWynyVRI-HEy4gvlo z{K?*_yh6_lvh^Ah69V3PwGY+a%(pro9DtWltd{0OM`>!q8dR zgbJL$bD6+l{i*`(l7Nx?)tP#e(f-&&JxBUXx;%O=bxPRaxgJ!wQ@2mA0w!E%YOQj3 zJo2HOu=+DLbgxz;2DZ?U6^pAL^c{z{w@z#Y$3fV>5rtnm@rpVURlH@L8MbfCpgX*% zZ2-{^PeKz`kly^PwAg3*+QaUcAc(Gwzf`*(+FMQ!!j1uPywWhCqD?`>luKn548 zkvIQZR*K6vI5CekRhU$vHNlT-+$!1kbTND$qQaNMfOuxX+Kn#zi1TByV#?&H>WQAG zSbwMU&PpZVjDO;lpOC+Lg8=k{bxY`}rU;Q`bH~O6#x#DUh6V-t(R8GUq@CvLm9OX} zcXd7OdEnATUPo&VST4Q5fpImhCegT~y$tdf4P>e_IbnIF|1hrrV_S(B6MT1w6K_>x z8rrCX;S?X^0mpGqrm)pB&vMM9u^LXgX@2WO8;1|yq zES=mjVl!>!nL?!A%k08On z!nFN3gFpytK@-WS7~R)jt;>pDb{q`n^ukG`c|SsZp=N^*2pzY!zfLFc`S$Iu3w1fj2Ife-;%65w?SNdL9FJs zXmbWY)^}~acNdQCGnoOO@w}gS%6wh*xls6-D_WpQxSNN-1J!wu`O7Ko;8Ea(w+|fc zt$JhCrrPXw)_i(dx!%)B{@paB+2`t!5Z4wh*47k8y^@jD$UR7clpB1;$eL}JN%=P%t6o7m6{9L|^X;iuW8v@cZe(I*}AW2+n z)R=z(E$uvy^BJNA(dY>uvIMm%McFJOps-Jeyc?;VaHt5nr;zuz1;=bnDD}NN#~{Y^ z_+dvT!4vEg#nAp&l4>PhE*GKJz5%3~&uV#{neQJlg1k&RNG|+?)mdw8_s-@Yg@W6s+@BA?&mbY%-S{1h7-9I zBVfAVWNi%lViQzQK)zopW&2y)SczbM*+nw9?&`kzyM}$d&!Z@xV<|HB%pHI^G_%RoUlEY@1T#7E zL0g6LHFwM*+w6u7xFiG^W~x9~0K5<^^CHP83Ju}-+mc|L4CGE$+%5~x_A(!?q^fsR2%eWr!|(khllDBJ9GBuort*iSIbf8c>d{XjK@Sef3TrWShp)`11d914l-w|lbU zBWOpNG`8Y`Kt;aPW<&H;9Gi(m&+^3G4ib`YL)^LF@)15k;~LOXts6j&X0~EY&FLrE z9woV+e2*lIm#f9Op5zB{mHJYq-WCfzwb&Pk2x#RG!nMVjbf9tcr}1o7UKE$8+bh|q z?H~*&zS`PTQVHW=Jd4qT6&sXI!9Mej^->4T)o!s?&hS9D?*2wo+jk29uJWP7e+6M! zw`g{#70B%{ALEAc)daTD*ot0=?k7~MjoT22BWGXe%6+H~#0FLW3Q&Ll0s+QBP?YL@ zIzGd4Gv=C>w^;qAFNhA|YYG{FB=^`OqHOzNTl+0AMi^U-S#<$>lM&nxA=OoJs4 z{zP4(wlF%=hokB@2f;)#6<~Vn#=nIu5}XVZs{V5@2pe05(=$+f&e3!KjL)2VoLD7- znAd0$B!8@=bip|DH(=vk!WEv%v9M%rQ~Y_{qObSI4)n+P zxL<>d+huH^5V8t6J>WTK{m)y76Y%PTaU(*#TjW!^{E zE8KaBJcIeTsnkQ==V~xIn6XatUQ3=sc1A!~Lr~r#0}l%DXY9N;ISnrWz@H7#hw`gA zveIVI@m{IBy6~OULJ|g0+kxrZAu*lB72ke2*fbn+p7->+3rw5((&^NIog2u#jpG^k zRXwbzh4S)kSKK=yPU&o$LBzCS@t2QMc%iFX4|3|Wxu;G|+u&kSOTe+Kz4?bZ!9D0F z_t)SsVTJvK$`8pqylfBh0Wxv7>N0)7f~(Kt7D%p857VC4_#Jzu)0=y4BP7_|Bo?Lm zt}%a@fx>7(knwT~Z@t(oOSQYaE6=qvWoV ze2hX=UwJD32J8N4P?tN|SkCya-Mtws-_YhaR{+QM|&&xX-NtulSlpv?!omZ*xbq#+H(5 z-J60m6`jLO#W_xNu%w1aDE2gJ3SHdQGJ{zNcl>|Yd#C6)<2LNKL1Wu?(%4pGH?}o# z8rw-@+l|^d6WdnfiETI5o_=e+@80{v`99dE^Q>93)*tuWxPI63dbN9^r`&LLU!`|M zFcN5-zHR98>EMb{v#R%Txf0?+&Olj5O2ob?F$nuut@m{`UU*&u%1E4yY&8)!Z#vra zDclDPE9Mk+diUw1*uHf442AJO7aAS9ND`==)5)|sft&>2 z@G$V}fTL4u7}UCVjq|ki8~0YD|6SBy-$j&W0`vto&M3wy1eYH-Q3|_Wrk?6Ogybvl z=rpcF(fMIQZH=rTcve=~APY_v>3vA!))^qR3^NhlN{#La2JhdqQh ziolPh9uJ`OWm#>7NSXQ25KW7q4evDTWIvE_Tsmpd2{E)f%p^DN@4y|X^;&ip($nrLo+;v9)KAylT23Q+C>@0hu z-KO^uUmjf|f$kxTd>fEA!XBn_8DVdhXf+_c8YHu|d%j2(yK|`I)$lJ?t16oD)Qafv z8sSwD9UPbIm7`6!`x8kZi7r=bxX#Z8=!!ge=13X_#1e^LVPB! zJWl=)dfk_miO=UfCc?QNduBcTMA^;*&=%1r3J-{Khl{))35?`sQGmc*gHm5Us;Nc_ z<%SfaTc;mya@Z^c@HYrO^2hHsDo;mF%Qp`W{z3jlq{vNsYvAs&k*%f%(iEa-I{~x8uBMSwXoKXDq zZaRNX+BDwuh7P}y3r*+uYv50}0Yt3m1tamqF{BaTG;A<-?a#cC=oqG*ld^+BT{m^!}sVe0YyM?Mc0u<~U96Q{cc_S6vx-o?X z+B@4X*Ux)HmVp&uz~Duprh!yfLki!LfwmNp5RyE&=F@kj+>B|D=Sn^~TYBCC_h|c( zY=P##-g{!!&JPuuXJ;$7;O+)n7Hs+(*X@JXuTkpRdm6c^#wWR0g9upfkwQvo^7(Sg z8dRU&H`kw+QG<>%Xno3riH8piY*GvAEi<)-_6v0UW`ll(+ikoG!dHkQisJ~sCX>+$rE1e`Cg;KX24APsff#O1)CRS0kNNDyATs!4w&l9d zSf((P9C(Q@8UtNS>@w7Bx2XMv&GX`<@igIwU5xDki6lS0?V)2S>&@Ln>n(Lap5V<8 zqeNd(oR87zoriGXP(T&}qD-x~`z3)p+)Fle@~tglqyk+4Jh4$uwg#g{sAY2|40%Xq zQxCM(km94RW~HHP?%Aur6n&59);mfqXGM6&8hQh~lLIT)=AV7WzDW8*mMYE`9M;_Y znoqt1DT$LGu*f&$*0wd|(p-l)#pyiNTDX4CElu&Nm4t0WSfd}}k}y_d)KbJ&Ghbk= zZ?(!*jbP7TSh}bFJRv3D2MlY2IDb`H{B^Q2*mfg|M%eLyHX{JyZH9v$s6w`?9VTtH zPx);K-{A9o7a|7o-3m)!mPmuoFR~?P;^q*7An*kGlKTAYr|LcjFsa(JeSr}NP_-@A zi;#M6`O~WcWq3`nPDQJ}yhNCJpTRnY=@_3y+;{lY_=`h8H*THla>v&$vSJ9#nJQ+p zF|H96kcHYDf_lUQ?|Nz9sN}> z8Ok{<1QgQsT3)!qi1@l6Ib{k31eJ2{dc+`HGS5E;z*h-%ETH}bWrQ=5uO&PLJRDb1LB$giBXh>+VXuCAe(JdqPpB%Dc;NRZkk@%mf#a!$ zCZOz6_7|eWh;ut4JXUbqD84loJ!b)95az4^zZTh(6Sg3-5F zkX(*+q6^+`1|+lX7aLiOqt}wa^Pb)iek=Ncmf5$CQ<9@Y6+tD0OX(`%L&A0H*M($F z&Uv!i_@C(q_X7!hO>eoF)&`#T_sEmL%=9eYvLQUhRQ9hwmkzutMLv$k67c~!&1h^h z{LtP+!H|9Yd*!;FREI>LVDtsnflV}tYMyL3Y;^i%E4 zTvjojXv_-!WZ3^-LA?_X1)4>XVgmP>Fr``9rTRH{-gw=w1iJ^Ztg1E(cG)CJ_*$_@ z@4Mwv#;bPy>uFhh9Y=OrS*?f+Z=uc=_8-CIuW(L3KN@b|3e)U%Z zrBDiGy>>z;KKt$3@zapJ><13u!8PE z2q_csGt1L9%DPSV3s$4#JlX7?%gRma&2u{?*Oe+5nd1^^unE3sQZ+sQuZ;13kkF4c zWKMIEFGwRt9?|#X1Fb&$XJNnVP*Ahn4ySSyKPltV zizAJ?ycJjLEMMp|o6Ngy&lBs0t=j*T$w3EP1*^4xr;$zLeTJCv-5BV4RVEizhuE|&~#xqrPN zm?M1XgJP60=`%GZm+|9L07o_C92l8(rap=(H*M)vqElk`yzw+?h#WM6X8ipe%*0y% zw0#zvQ(iF05NFaDQzr;K?wxw5FlvAC@NxVP&-;4uvPQS(zP%cizgh3|V>eq7 zHFWrn>tuJ|E{0o!RUMBAUCr5xt zq#!(MP{-`-T)O$_^Dg`4C1w5XmKWb=*PHPfr(x_da0?a5Nh;WY)5F$Ag}FhUE=Ng? zGO6|dK=yA*!42@vx;u=B+WcGZxZ32%M7~4?| z5<+O1$7Cg+yPW7HzX4j~+t)8M4;a7x2~8q*Gabz%$5-f2mQP%(prQ=U)A_Hs|Np&F z4lqHh;y}kzQ}?+4fII({W&Dq0gNBRFT11TNGkIe7zZ@sHd%$1c`E{v(2Z0vvz zz=_CsM_9DQaP|5hpotK@PEp1{JgJDW;F+id83P=Vkhi{nCZArI05J%d;_G$MdmwNT z-@Fx#yU)6ak;LL5izX68C7UIwMkQZr{m&i2>!;ciN0Tr*VKb0 z#((a*+@IgheIIWiT=&N`WHVTUYy=#x@gkAaH=92SeEDpCs9en*CSIsjT5nt536Ks^ zHP6#f$>u!9aV6d!rDwYCO=NOxpP;cA`pTxz6;dgs$go>XkcA=arSE_}13XbZj5&ov z1L1DsL4B(wY(J?Ly2T`Bnk4_+_A)aRL`z|s-c=m3=qH59r;T0S;{Ic?_k&(m<$tBn zYgmt7`WszEs6#j(|G112sp1AB=tlmzLRvg)lY~48NXK)7C)^u$`@9!)kp%~F;<%SL zqqs)n{Alqfsf=>brO3N$u5;}|&QG`S*196Otg0w|!BzIrrD_%8ItJ+uTG`)o!#^YC z-);EB2>FD3e_M-PTAUHu;OW@&MdvM&r}y1W2?iFR5ykR!yw)z{W;ztbZP zW&*1@3UD2sJfFe~NK;7Sl*NE}NOwJ)mXLQvxRm$|fp4s)4KC+xRLV+!%Hy7Np~tTN zI=+8a%(lRUw%8v_QKtY8AU}IwtV;rIszfL6Vm1$C>L|i~ej9EAbpuh_R-^7WPq{-e zj(?@j^AGyG;?3Sm?M?ZW_8c{^bSIL*@m)GD=~jU{Mt7=y5gRNmZt(?RxR#2q{5g@@ z>RJMq*yfro7oY~McilP!pH!cpYEShSG&0{Kx$`lLMS=0e zBFw06=Tu)2aXU_11sAw*ao8xNv6QG#u$Vx^dT1Fk6)hRN5F zTX8Tn+xw;CdiNahIUQite`#a>1R2m3D#Rn-oc|$ey(G?ks7tiY56hgl%h0XrwXE_x zJz&LWM9-xGwK{(a%Af+->cT8V@NAM&SCBmt+`sk+ga>9@dmJw-xtJr~Ep__t*XswO zfh{`5YsHFb@~K`oOuv>OGRYJH5Ik@W#&aaVjsppnGdbRl?+(~x9+I&|Zy`^Ur)9t}S1cpJF}fDOaOW)uX7?(|>a<73xz)zscxA z)7^eOYlYaWv#N#PgG%n&edoRa_e49UN57SE8S7#&dE%SE$R^JcVp|mohWCh8l2(1P zChuvw%0l{axA61w?=}dMs*raCmXtZAo>u-~Gd=#0y`0b}nM$^D_*RH3g6fj zvg(g=u2x1gE`J|P4RnU7$SmV@O8w)TXeEU_nQJZw2*_Yo8Y~x1ozHl~HXBf?@CD-tbH7>hDAsWp3w}N^J6Id{a@*~7XU9`>S$p{uJm~wRxL3NHV%|VH zZN$r>wXNCH0w=iH-W@quzt6Z2hQ!qy&cJBF(fRIheA#l#Fx_eY?ldG6j47o`BO$_pCMwBQOMsB>-mgpgrgfGObhDV^yF5Oz_Nky!^Da;a7#UMVMG) z2h?y~xBD3=1o_O4&;Rx3{BYxu$b|Sew<+X@M?`qB4^zQ!K7DnAlSGH`&Mu^f2BdMP zm~hWuU%^4S+>8#b=$r&92NMZ6;*7h}>FL;Xy7q+VLU5aES(;Nrbo!cin-^w(+emW~ z{}}&1$7yrGFV3{~u;<2$(ju&SwB2cWa)}pkeZ@k*C@|&K*6fr=-2+N_eFkAAOJ*;1 z#rQboH3)B*<(`{n^Rl!a|22$w6bj=z3|dY7t)((-&TrU)^UMI^LF1gGO}kB=W=~!vj0}5n0{U>cd}R!lG5`$Dc*tq8f$+=1FFP*xubedD$LDU+ISRra57wp z2XV(3+)EGrJ$BRQ?Un|6lpf&mBV!s&1qN_g9B;BHaP_JNaH267^5rCVF0F<)C&UFyr&1vfi(U+3(!7esqQevsqb-Els{^p_?DAcTA~5u|~_A(9^$5VFcSJz5*!-80mE z2+VNJ@xfAWs2-TU^g05>eK7Lo-$whu+($hu&pbul=kxh!29(K9$L0kny`6En|MT&4 zznA~nhyWH%%~xqR!UP$*Gw^NqGs2U2|Ltc|t&GH?S6AT?NZgn>9R_38$=yqi^RQy9 z++urj`ky$A&1Q?7B}P-|L-KkfW`*IP-vhs=5_sB9w$SedXHxobKg#2zzIxpr)lCKb znsh6Z|3p+0>hiA6U||S-2h7o z!~!0_!{g7l9Ao~-QuK<8N)b!=};`pD*i%Ww^3tv?9-UPMhNvjMJC1RYUU&Ryt8{;fGEO^0rrteyv~qt1Z-FWu}B;sr9eXCLD$gBRPs03=zk7t9D`D$ATius9C=iTHl^&>4J8lmwWgq z5}qx1Owq_7SiF#pI%1`5%P5GPMf){hzqv42%lf?}_@{uG z+nSYp_s;X|@22IrQpSxc-Joy>tw;F>4k>V7E>)dWata%UUa!HS(-z6vbSk!;gXDH2 z8PTi+5*kbAm5a9E(oqta8(mvX8uz9!%=}_=6-Wydc@#JuWa|}PZ={tOzFA24&EMP_ zwVz{|Ks<$gzw{5VMAfwZsTZfG3*yZpdkz*DcKKFkaq7Mj`OfQnl9D9lz{{I13-r?8 z7XSQxcY8j$W-aCo;xtcDuZcl+ONiGUT+7gb&9stmr8_FJQ}PUjL1&~62z*1$=W7*9 zCL%P-Sqe+i_k7^SobpBAt+k2dbP^`P*F z?TtDyCH7dV_*U7?HV6k8ATog-Fzc+2M3bdRxZt6*aA`fnf4xeY63A7lr&lkQEG}YJ z-An}sZbn17U%TbT(a&8|kEiuBm=sIV)kNGS66#*EyT7J`F4y)rGD;ebk%I3Qf(HX2 z1*!uIuMzMnlL@`2aEEpaa5m_vd{5Dr?H97#TnPGzP`S5q^05kB6q&-grj{&0eEECH z)56utIm7yT_2e@8V=0Bs@?Zn763Nh?W8@$tI4wAc+xI@N2`6WGzwzr~tJ3NvY(~lD zGuIe)+o#vB(GnqPrb5Q;baYH9BKhh}MpF4AN}UdW<$@bs?sQ|*0!Z+j1YMad`h0gX zm~>lILak8V&YHLJH{tdY#H07iKQ207Qq)x*7aDwUw}|AzkF6$lB|htDeRsIZlxn7% z8n@}5N)yyB2K7KM(qq{<^geewkK+31|TqlL5+!S>RcNklf#A-s} zr!>2l?V7TC=%_uzdfG!TxGBr(Ce-U&iWWNEfU%VCrGF`-a10oKpc0|tiE|2r=zsKh zKI21%X~I3X*6)sMvu=67jzA$z1=9^LC?wE29dP2XCVGFUo_!fYTKIg0y^`miqSLH} z`0iWWSsnUpVuXZ?y_lA;+k&0^3XJ=V3Im}erJCwbJN^vgtJ_4qG|5bR0t2?=e zoxJ_Rjm|i}(n;tb&u&gc?`~zRD-Kpnn*xrL-8e7p%Qv|nrqg3wAz^PFeuvD&R^CQ` zohkl0+QOCLKh{G&Pk1d}dEUb>=_9cE+#S)hU%%?c`Hi9fPUk=z;4PPA0_s6PyeyAJyu7Ys-DH49?N80svzp7HLzcN!M-Rz`rs#)lH zz4Nk`zXFR{rhpt09t#KNAQ9W$&k<4?HIUlfFAz?-?P?D{t{08M*e&EDa-SVaPwwvv z$W8Xg7PeQ{+a}+^oqnBM8ro|+4!R>mikHJ?49ykr2)`rbhVk#d1~K-7%@zA&G8>?# zcl<2=#?)JkgIrIRs?6Mec4nsTw^?l^Y@6IK-AY7T#`X`zW<#EvwP7>s^L`hoGvlq8 zgD+ICNHSR)7&S?Gwq3cw4*#~oZUKpBx7s9>!lK2Tx z6_~G775aYcE6#h7QCyYVVb)tTX!7YU|ILlJN;!U}cvaRnr!eN($qw)R9X5Q4uj~QQ zExz1-lj9;h#&h$z$vTn3Wbv%^img5U zw>EX{Vm4h-<&(LF_E=StHjC56tJ#()lf9$(Gu`J%?m*1lSm*h6pY)k>6R6)3?jLrb z4r=i4#%wDEq%-J5^lcUZ_TlfN>+xz?_?+3P(%Eu=@JO=gFShas#`ihQ_8dG4ME znLLeYoMhMANu_CpSsYZq0}AT%;juAmfNEo@bymO+H|l_ z&ZO4<*{v|l1(__a)kvVn_WovRrvnPthY10iLCxZ~w~fuPp`Q_PBdQ4WEWRxcgL^7A z{_b$+t0c(~#o(@BXdv7gS1I zN}T5ImX`6JoYq3G?t91!ZFa-Ahfb^OPcwHZrTp-u%BP6q1i1Bm-&eTPbXdaU@UUS} zN%8rC079kH_5K5A-vCPySR{NLsd#)xd;X6zj>=87nwRzSfW|J~hnTLWE;h%b?BRTW zW~N2{DFVH3%j{h`n2VJLzYo>nm&yZdmwwsAuU0$%9X&K!Hmnspr2#;`EVa22+9?pL zmT4Zjt65c@SJ^4cRzZDO8FCDl`8~H*(RMVu4F0$`?5fdfc0clS(Q0fp^?dD~j+o{Q zXGmkI>0&lE%XFU9-u&qm9XRmrrdvZ&XcpnV<`5=q{^9k$&tup5v+7L5csx%mH(uzu z+{v~kd2W;Na`NnuM?M`ejc;WZ?9QPD_8ql(tQ)%S$Xjo-UbnV?BhK&T%_?;cWny*g z?W>jX`B^(d!VdpJUMP4|)@w3^Jt)#bFu z@OM7PzP>gITWs@yL0-uC7`w;1_cMpPFw3phXplOZz5D58mtB13^kWLQ>v+4TL-(+RrKkL<3(|EyX2jDstarJjx z!Q?K_UjoE3{o-3zX73;UC9T_Ci2{}nDri?UrVB;7c@Iw!n>_u{;AUB7NeIYbtc17( z7@1Uw3NsYB5mm~k(Am_S%v@y5h~1eJ2khpGZU5G3=(oVl%Qmq$jyH>&T;yo7*(|U0 z8g=cdPVm>nYC6nyYdi1`K{_1;U+LeS0e05fHPu!5BgmCsfe?I%nNfAi*N?lLhV3Q0 z?YJSp&1F)Ny!(n#--(K}-EVXEZKsVaO}4WWpn4Dgfa0gl)AlEWwc4M| z3%@iMo_$Qp4LI!m%NBD#8bsoSsPaqg*d+ zhPg5|UKk<@flNXRickvBQFNsM!NH*wJbVpBI}&Jew33X4M=1<4r^pdkpAy~$I+@>E zHo;rM_8%Hez}0l!RohoHb=k$)r7+PX$l$QSks$UEB&K|HUCCwq4y%m|Ez4VP&k!BC zO=s348H&lb4jxU^EmuCC6*A}$|6JiIS6X|6U1jRShewR z`NDHFvJtF4kEN+x@liGEK8M69NTdZo51<@45Jkq#zi5?bDhN}0SDt7P8=1^m_gbw;sXrqgFtJT}|! zkKzL%53k~V7~({G2h~2LwSy0jyK%FYf5@@YXXHd`N0|(o`f42(e29YN%=KKv|F!njLOM;F2{Pvh8 zM!iCPG_OBL+|#rx7;3Cc^Go*X+vZ{Z8isw|+ho1P_H;n|((^&gocHS5j_Wg~nE#KH z1Ze9+FptfG0U31pmNm6Y2SZ(^!nKRA@U4)WH0z8fJY z9waT2R=S~yhk6fM(}=qJ?Uri_kOV4!(c8ugX?QaX68q<|)O39`hRDA&GzVP4ykpe$ekbbkH%fr2~$5O2;Oa00{yMZHhT8YU{rtQy0F-YO_9Zm*B4 z)2$Pt8uzsbY{5faLivLIBX^x3dR()b^D|l~eEmHxy57{US6 zPZDZgAJ#EkI42MK(R#)S&N!6Vug;_xv;#pXdga+E|&~y)7tUiqe3#<%D>Rf zxfAQ;?qso!uSpt!bNUHDy$40He3`PronQWq3N%8o<^JkCOmH8Dh|OKHnsJ@ncgE)m z1|kfd>k_esgaI2O?BpOcw!N62Ek7VXxXyR!8W;igo!g+_;&&$+UY&Qy2zEnQFUY5V zneSNk?0{IkbXVYkj-#C2qGL)H9!9uqP^=5mAcvnEy+Io=kzz>2Qj*a0aR=ZC@>Z`< z`;1(~o<9)W2$dG6^e@a@Qz4?s38&4Cfceaa1Rqot3x z)vRHL8f-2N#V@);{u9yRvdw3;?7NR&IqP9A4&0nu_L2`r8~K9J-+AjJt^FlQVY6_r zn5CYfp=3*pCPcmX%1Vf?=+xu)v-aNQ1IWo7K2yZg)IbGzhfY?LGkw|5M5B+x3!BdoL0k8}#Od$g)_i1U1oxonIM!N zI!ji*9*tDLzRc40rDGU^oiA>zw8{{})M=eE)lk;d>|(SxxBgzF$H^cD3G3 z;yb}DJo1Dr(msZ>&~iPC^FE|#a-CGNeepu_TK%OgtXPkDl+uL>9M98wP-HJbt;L~< z?oAmDGiqeo)19wv+k-GJah0NIhF#JHpUQB7L6p$?K2OvXy_2!?Z`UjVJXKHBhxulZ zN|i_tfdOJRdMhnn!qIR2A5S&*wet|jcKSbU4wpa!vqe*hwc>BJl7)iHq>|a*#rr}M zB%keA=jnH1hWo*g7a%RY;U(Xa(BgV$u#z4KHOYG?sx4;h|GvM(`EHqccX=Yu!miMo zG3gQvH!T0>PlL_&dQd{9hDif4?_TFsVv3L(bzm;&x3o3IZz+?`=wQ~MtB{h!x-2QTA}o@Gzb7WUUji1TD&ef|1*qSI67WI;1R;uwqUt0K$Vn=p5>S}# zv6w`Gq+e$$o{4r+bdOwF2a4eMdd5Uom|wN!OZ}fSy*9yxe0(B)^>97wx3r(XQW?Vl zH7x@v=yf70bnG-sCA{mPsDwCL z^z(sLn4S2~*&g-plZjl>UE;^VuyRV0KC?THeU!@YOQGX?y#3D)%>nPLpg2>M5(v*c ziZJrey|)(uLRj36>lof{r>3Vo=R(?1_W(y^)~|?ZcA;7a$X^Z08{N|byJXH1eknj$81v#GQa$ZukJwpHHuf6 zWD#;ufv^x&#K3(Z$1R2hE&}j3bLY%+m~$fbY*R$(Yd?pf@10_{&&2G#E#}MTF#c~M zO!0I!sD^e!_p=R-R>Y~|G8Fo%hUns z^vDnEvT4V}X_41y7R+0p_(`4nrj{<6)1=p2uV5<~HvEt)a|t#~L_?2upi;rs4*+av zI^XD{cu;sc?5W^q<;>wc?r zeM$aS!vbhe!y5uuY-QO!7UW8WC~ntlO2HTyH3G93a?P6@HH8+p{GkkmTdHbyc9?+KTVKd=deh3T%EeKXoYp;uf58a+=sKv9` zWWfHJPRC&9U_?(_B|_d+K<&aHVG^-1aF-!dqgUv3I-q+AN0%ww&pd4ES8WC|+UW3D zWa?4)X|;lp{*I7cHB%DWPbFOy=7hzR=lxXcT>@UaJ?k$!gMB3+R_9g4rey9L5@?{n z`y-(%d^m93|8QMO8y(4e)H~7OUtYPi+l7%*w@h;y5w?|yYsdw;((Iv(S-bpdYJwTG zw_A!dYFfu!iM(?Of?NJOJ4O*`<`+-JwK1;Dt;posl3}_aI-_uI#eEw;q|7=9tC@5= z&A$#k`t}v*Y$AOX=u3@w@!oIINnbtv@zA7a!8Wq?Ip4==`n5gs^K$N=hHM+3-3GjI zxVh=5t-8X86g7Cq=t=}g){Dj#-TSk}LFgX!hmUI)6GA$Z&o0?iqB=s!(-pAQKk{Yy zf(3XTrc%JkWIJziz>!tuWx^LYL4xy3y&G|0@6C|jyDFBm2pCbFn`0|ed(1*^+r5PH0 z;J0M3-cQ4lAS2?iaE~Koh#`3AJlJt%}c=9QOgk&%1MV;cem8IK9V?v}Ugz04=! z7R552PjiwSotk%3yl%YJz)lM6GDjC&;oFp%J(eM8XQxvvFpmdv@x$6F-5$u*Oh>}0zO1KrC|`4pOEM>8|F&JUl9 z2WpUDv=zHQ8R)ETv@1lNEn;~5OKS<1m3AW~eT-zbSHRMFvqfz|FiW1phxe7UR~0sH zoZo~iZ9Dftn6+7*RGtKU9upmFt;((#q;uS+)mI>`;_Pdh2Z6nHz!{sRdiizk%l8{F ziZ(?g!4`H$5-)%yq*7#W}2xiR(Vb2}{mC_Y^B<&=L$m3G%AeT3XIZx#RKg z_%&3T6-uMT|EPPc-cy$0%hQ|Kj^+&4o=Y~1dk%dg9qcvTORp{ThL&|YM5mag zi8JrYFLnh92fIHlIIE1t!k9c;6pKF7Orh9wIw*QkgRCuAI+#jjt_26`s1UCW>EItp zAm9<J?f0IYm)KtpkGFY`=`4<=O1J@bODSMfNe-K9>7d89+K*2ZyZYLUu{=0X zz*#u`e*r-THxFO?Srw*I?Tl|5>aS3BW6KO%_?7Te7d4AyHut*ADlxYqSsmSX)57Xo z94581HzG=@`P2+i;WARE#=Sgi`-v~JL#CgCbeZH?ptG(g1;bj3zxTC8Q@|C%uU+~) zIyb;jwqS6hbz+zbf$eFC->EK9LqT}O#0KBVx!?x0wTmrSHimP0gz)8Qt5daaGYR2# zYC5i)TBq;N=NRW2L+ZjH(E!>?lGzU?$l`22viY6kTLw86uenb=Y}92;tgBuZ#VmGw*d{&il8PKw|d zVd-S`RW(63FYPOmIP|eJeS&T|V|BZyafvQ46LmtY@*J&5BTH*wyck%|&F~#c4SH58 zQvsaR>_bu&>+DM58%6~`h-4Xg(wig>NI=(wuc6sv9S*!=LJkp0`O8wXc|z3U_!V|0 z2?aC?LTW1?@$5nR56_`IK|6|!f#XDcfw6``ZC?@9C{jS)TX>|o>L}fwUS!&&3{W+6 z^ZiAS{o>;n<|)x$9QVUqmIRTrJ9zgAztWv@0_5t^tm53fT2sg?<3~`=Hg(YLhdx!` zo*mlUw&zSbVp*UK?Y$~>(LM>(j}3nl;bI^4AI=%dC5~o)8^}VpfD;ceOb$j|L6zr2 zs8(-ffPiM`lK&}@u9D8$O zzGnUv2+z^Oh_KIu(97|X_lw{1d^R{Kh)rB1If9zO)O5WEZzb#b?F4tp*6-62=Vh#C z?1!Kyx>J$g)xBaG*La-uZX9F~F}F)f=yV!Jf=}r%0X1o)JXbXK&!AWYtzq>(^crbx zFBN8&7Uy?E0wp+rrbTY(CnlePCO3ZJFE9*uxG$snQ-vXaapMqO2{N8K$oM9UVGm6-^yylV z>axH{20APdZslU3^S3>j9g`hW%Y(_A@!Uiu+MJ|AgSjV238FBYczGalpzfXriK)&%{qi3!4A8_zo5pDkAO| z?xi|&mts#;O>->#7QBDuEz0j1EP5IlOK}mbq)*}s1X&M!2nz+o;BdDG`6%iff@$$Y z*^84+zZmqV-Was-0;7WcttE5kUb|HS2Xx&}U$kV_#xxADgbX$lF? z$GtLsBsU~+A=E%jGW6BQ+x^n@4U$M%z>|jOO)KvHx~idTQADNDmj!9FSiA;J4Ef9x z-7zRB|Et2m_M0>C;fJnEr}|k`-ty-0VYYkt@$S`)p0VoCy28}$vEkYceUUm=Hp@fA zg2=N?L)B`>sGKOz!n<@Kh9;nGFnnwjYPER6CKuPNg5!I@fY8T3=H`^Om;>xU_F-B( zHVnIG-Ed_9zZizQgr-elBOSMB^46&_mhaP!tIEyVbD4-vzn~r!b9rw9Dtm zfcysSoem89gJnIa)Bv%TuPfB80kzD#2=N%v5490jLM9}Y8ibAEbq;5!MaYE#k5Oe+ z#0JV|)~6)QHx*$Cum@ju4;($#EFJ#pL(S3v%bokZx0iVI^S!f8qR&2GRPwzfTkn!b z=mpsN9gdA}t)v@qgt6e*R}OBaW6vsOZxVi4Lr^BWp9DS`j0rj`Ej;6QvfSHjd5~Tq z4UwJlyCApPBml_%XfSBa=YcjB1v*HsoO}!np+~;(VGkYEIJQhJK2yzhog^VDL}mVh zE+C=vy=*xpEet%sX_Zphz-+s|!u;T3X$H@xctW5vz;}N|By)O%ch7f($;7!*;Du(0 zUNFEjKj4G1}{j6u<_h}DnmO7FTiA67*X1$UX*y6LXcQTN6skhr@ zQ#=etZxmB)g0PbyD9d9}nE{P#DjGCoU;`Q@ z_xR>$QSQnP(x}(X3a(;He`=-I98D_)$Wzg{wcN1k2lr3EhPdPs;zH)3b86=y3NcF) zCLSJn3BuJ>Z~!=_WtsqISE1;O~=|)F%!BF@iOA zM}Pg2to3}$Ii~@Q$9Xdsyk6);0Ec@zmB=qrIzg=2;QW{j&RIHvT8G@vBj-JB&hzW_ z;44*WLfwrSx_#4gkQ_U&3;@pa{r-Ru$@S!iicGgzE7?JJ>J1F*!Av#FlVv9KRxd@= z>Ww7uS{sj-^NVm}<|58jKSHDm5==j~X`ncKO|}d$J!(eeYB`w(%OGH3pMuVZqkp(g z%%wo@-BTK-DE2BmnB9btL)*G1X!gEv`ZzM`<)tkkFVCQ#4ht*%$Nbxd-#R*irmljwBKM?3m6< ztO0%S;wa)_{$%9=_YTO2FoXM+drWgRdXomTpr1x6Ypnvx>%I!oMrD$LkWZIZ57q9~ z^}VlspPsnP{ge>lqa_KW8FtwhD5gX564bKp5XWy6)f7r_uyoFbsp#b~>^lHtl>^~s zZiB_84!QhInn414p8)!rl7wLpY0KU>#xiM_@<3H~R$&$Ygs|rn5?ZTTtl)h$d{mV_ zlR+tbDFx0SEP{qjfSCG?qQDJs`>b;}6W2&Ja?uLm*4ivjgzivnTzmWZWHpDOPU!Wt zTHsG-J;m(QFC!JxJ=|F-a@5&4oHy;m4vce8QUK#yu&L$iK)n4#AYb)ij(b9~YRKVM z@1VB%rUZOcOpkZptC&|bHi-nX6u}UQ;kUCv9k0e(7T2-QuB@`anpAz$9}EjDjazqD z!A#GdTcXx{y%3IZ5&JeFYPoigv%6G`MX^>WW--snv{5amm5cO4OeAtK=zrl4vzB7PBhG6`!LCXcji&7m=}k$W-*#@N(whFS_P#PKs&;=@5tQzfZjhmo?vj)e z7*b${k_PFL?xDLR6p)ba?nXMLI|YQHIm`Y2YrlK{zn$xRI`d_&b*;IcS?j4^-S_=C zo;a|k{si#Nyr;=UXsn&DJ6{5hF{n1V230aMxszt(d7b6P*I$>bIk+^UuUW{_c5y2m z$70NgwUyTU__vX?TcPqEL_CSuF0~-(7)KZaDaS{*6gF3xxOnXNw8J;c5eIZxD9CDn z@r^-&(bAM1pZGp(h|WAf$#DR|{1@p?GS!RK3w$|hXE%pFedJ_*gfe)92)N#ymvKl| z+XpA;9J9aZ#u>sW-o(DPn~-zI80Ct~Je(AJJj!+fDFa3s0ZH;1gwhJn_Qc|J!%4nb zQt4Gikr?54Zx=!{iFRbrN`DPyXP?{sVha}7gbuc~$MOX|P{{U*=~@2|b`9~YP+kFY zs)FH-hyD1koyir1*%7W!B~|d4b7{t9EjriVmN3jn3X`aZp*z99!|zz0jmtU&{0Mx5 zq;n_G`#s!;0qrPwE{{X{N9VfiAv219=wfg`*cS0Z`-5LXWRhuX1%7e^^#Zt?;$}?a z>t{dg)v|%P!|@|&9pqc$=g6&a;a}xA?TU2ek~Bb4_$D}8hqSOOTA~_cgItRCz9T-ZR zb{2oo3Ap6Zeu#Z?$J*N5&}aSmec23sXNIbaS<=V&3&#|E0VbUeu~!~I=7V|{8p7~< zdvx)!T*V+&Wp#88SjRmBjM?7C(zr7G2lNzjF@)O;D|ud$@>dXS8)(D}Xey&Mk__UT zm@mD*B%xyBmYnvX%*9min9TC{NU{h5U1FL{eX(t3_Kf39W878wtJpus$gyU~`89Xp zI5NRi>C|Y(ZOdBV$*D}@nDn{iiy6Fab^U{4i_Om9WKa0+2YL66*8=z5@d&0fx%7%k zZ%tKXMI|vMf+ZTdbfr5-L!!(=E6KR`*j)c6+A02TxJPF+R<|To_`* z)DXK}Y8K&;Ta&@*)6kMm_mO&@#c>Tmi=d*5_NFcNXGB3YZSFv}jA+2DY+M!-tHuUg zX^V^GX$kV#Fk9F7~=|mdC?Z`+5(jJRPpY?(nzrUrQI!w_PUWA>9J) z_4;pUVmz=SKqxuo;7Tf!A|nR{!gY@9_+I-w*aXcU5&|=+t6>=LalGAtt|HlakHT*7 zYYtnZ0XV&H0jqE9#HXq+bjz3GNgfoR|OK!qd1KgRiBo2Io_;}}twhi6; zsVa6IF5D6i?E`*dp2n4e)wBB~UQ1l9HD$jGWUf>YGK>lPN6DMqk*m9*pO0L^0+VT% zy-EX1XvVT6K?pSR)i| z3(X-7y~O?r3}KedVi)GNCe^6{$U)=x(VGh0QR?>dx0CNrcsplrq4aSFGeOa%pUbJQ z(d8}5cj*lJs8^ZzT4Q_CIpwVN>Bg&R4d&j-{(Nx!sqC>TetcT{`B;9|;aG~~Qv`+i zf>Slt8r}excotd!-67R(53$X$6!N;T=4jj3tc<}J&~JJt1S@*2XvO>(T4UVfGdmU- zp>?^scdy}AHY6tyx!i$k_IpPU%q&2bXy?wXghPvfI+(7 z9VlQ{MEfYA-{gay8-?&RLgciRj4$+pp2As1h(97_l1;VW>`iq;Qm0dvX0B|4b_u83 z#V-E6@B3SO_ITkd@MpH-5ov+!smUgsPN0h zmzjsNMnWWY!72`~k4oF|lEnO_-;DB4c=~Q+VA%LCEZ_^Wd31vDZ9iO@98f&xX=KJMX>JSzU6p)g0Cyr|<jPrZ-49-pw|qCSxDvMg#Ng4K*UN7Ut}hw>;6QCgUkgLpfBns zAj)L-pZ-9(M%#sUK^fO-(Z<)2=TX@H zie$5+@9X=KceN{D8J~*kadL1{uzr{J1VEW`@)XlmXVl!Rqo8d*f$Di6Nn|`Jqq$cutE?1R1teqjy4{sgfm-r8bitP7 z^#wWGjy2Othz0lMaUz`2$GC^_j9?7 zcdQq9Y$wg>P>x8Oa==;a6?O{vfrd}K8hxvWk4nr)rXA>rdcaJmhiI`hYflgqNFB)S z0$ zML@ppCWQ03R-l)CzNLoy)@Sry&uDKnnjW`SbzlfrysXhaDmm(nr?#RSH`#x*4!>{E{;Sziut z9pxR6qzhHN=#02H&3?i72U9WXGf=Aq)Cd^_B%jO#g*h6GD`9*g7z%C=yCv||`7OWf z=Zqqmq_O4!fa6|_ZRlWQRxdYWJ%#h}-FKRR!Mpslm-ESnuOm2SD}Okk&o*L^4&xF9 zIh43L;PtbNZ@0vF@M11W6cI%bL$N#JWnvnu2?n;op9|-|up&=_=iT`Hacl>$1+xa8 zN9i%tV>?Mtu=hWi#ck_5uQ-HwLrzCZHj^wghyp$EX_3v4IeRpdb7jI60u*K}Yb0j7 z4}a=A?T8(7BRn0DvH%%27b1=k5I)M?hP_w^X%Sj1Jd5pgju{EZD5;N27$-u`F_K;p z$HcM7BTT#vW$(;%NJX^DidgrvN8~*?5~>ZU{4x}1b0aT1)~s9YE~*gqq6UW@ugEkK zdq=OtVj*SSyZ!<~u&H~4=a(tEA!u*%teUgMIsJm0?XbEfOU}q8$OTdn=@j7b)GvgC z<`)gfkNccXzIu<5>zNb)hA#X@$BK+^MfcHh)Y?f0YAy$s!?oG>LwNEXVTq6gIQY+` z<;RZ=YCogUVnJgv`tbOvvIJ(GLMfz%vT@l^=Qs(9Ouj>etkn7GA|6h(~Ec|``HKDY!DMFDVm75!~%{EPrNXQz!1P$2O7IB0&H<&?~ z;iTKxM-U2$8I`!{AW(aCkTm~q=5rX_pGcu=L7}kP@#2+YA-+Lh5nevp7zyG_RQUS- z8w39AhUTSW_vgp;oGU+R__VMJBkBajbR+J zh0m;z0Ma~=Mn}^2ZMK;Z76-?N&k4C4E*U%TkeP#ib{CpyyAgI?#;lQ{@N`^qC2Sr( z8xR3d_^=)OahkOAM<kL9&bepiXawI3&MNyQDP3H}s*$4MMU2|eiWLh0C9PqF>8YlLLZuo_xuWkL1 z0CE>OliGW)dr(8uNnQ%A&)sBAu-rFYq2VQu#027YTRUNCsi4wTn8V|t5;m4-8jfqB zaPvz%39k%XUZojX9;>p@BUdE2L`f{zGw+r`5@XYD>J20kQ7V+#TEDwKw?gWN*?1&9 zu1$42=o@Dj0~$rxV)-uzYxTH{KBNzKQ2NxPhzt9oK z*`pq4BE=HpliGzJR-{(CGu~pZ#VX}ux8zgB%>-W%(q8r?a|7zHSt@!5q1_)(CYX=h z@)1S7#@wj2P>NqI%z~*T4TN0ZAvB?y^=t?L2@v534+oy9&pEV8w^6S-33(5>=~Ijv za#q7@H6?lFzsZ?NdE0M=2MJOK;tEAlWg4utFsaJj1;{Yyu2FGhd=FFPkrb7m<9|Vc zfRXik(jtl^lrUd|XL>*A>?F{RRQY@Tg4M0~5bUT70VV^;~(0_M?w?4r`GQ1*s9_ zT7GJjQQXF#PN*Nj=c>UH`@!M)lGUkv_#EQb0T&4|0gx?In&Whvj;JK1d*q-2e{uPK zg#2e#XoeWF-5M0gwqQH^zTTSTPL>FHKp4Aq%}y{$E9I{)b8%bY>wDDGr*d8n1hhA`pwv!oa6+BhGWvEOHTyF9jr zSNTk?XMayb${sVxd5b*yTg(X|SK1har|!S*uNuCY)&XC7bI5nv5GjKwg^K!I|FzoG zDyN^Gm90Tv1LeW3bi*E3aITe|qpg&oUDL*+l0`w=as3hBo&x9b82Pv@OQ&m6l<79_ zpvXG%K&`SEox@gYD#6St9AA-Nej{1{8?Emn^%EEgA7^AHj|^R{ir{$GD}O$>IZw0s zwVP^}BTn`38k`aU;-6-G=g)F(m(hz$7u^~jboDWzAoBZ5K?J4(|4Jl;AX1+EMD_Q} zWF@EA-5H_03iz-_NK2GX--gh2WWFBl$JW=k$T_kVR2j3{2x6d)1_u@u(s+`JOHA_OrIJ=(HfRblhLTL*&TH3`%?K~w0 z#fCLNS;+=&Wz0EkX(D&7IPf-`*hKLB1@1?1+HqI{O{8`8Uhpbo*n5*##7@&*JB zLjcs(0P{@#u5XG;-|VSXqMupzvFpI!`VvS2&o(w{KVNGF-goe+Nf7l&!+_u@cWN?I zkeY3;yVO!Wc@+cEV@Bv@GZI?9s^`e%wnO&PKtQqt)UO+| zUtffo^ZVP@GULaJ=+#(vXz$Sj2~-)cG0v3!mxmjXIpBR3Jh2^zz8?w;0cy~RgraR~ zL)Ht%KBK@hf=Jd2Ry-5 z?AjdMgHxAdA<&H*r>VCgf_<*JQiEjW(jDT_?H|+my#3U)nNpD=scd+^Q{;4hep*0O z$h`%{mL_9WuQCv(%B(EABS}&&Q`lkBm#dV0CgLv|?pLz#a>dWz@4OU8m;XBsi!AN| zG;>{K3dN*R!W*n^vu(Y&yC5UPJYe2kTi|0$WOjx%R$yehDFQ~R@ER|B=e1Eat}7Ko zU18yE>1j4=e%AOq+KrHuy02x^wxl=9i*~$qqCU8n;G8;X)=IoH0O-i1AzD6aQe0weOK)LloIxJt0>5Ki^ND(;w zcSbeEqNlTmvU{s2>}1YUrgx=~h0Xe4`aRN?fog>pQVrz9BTjeLjc?9+(ygah#;!u3 zTOT;TEq;cm(j)?X?RA{K##NTOc-YKG_ux*~sj%yI6=d4;Pi=Q%O#;LxKbzf)X9}aX zKZMHAhdBo)?};sStyDiOK%p5oT#V%l8`n}GmebgVf$E`ih{&~w^YAGNy`j{(rQU~% z+Csykl>niYFFsk#t)H@z5v=w%CLhOc;&~ru=9`P&RWzgcSl%;v{brnhzTEYGhAbgz z_!%f?__Vqq{yHTBUO~A2VIT!!BTgM${OV%FvZPl*!yNRzgk&jTg6s0!P#>OIcj_~v ztWariD&%u^C*oOM`@t*kor#^%_Yq5PWl`D(ip3~LBs;7HvK>jYqY>qMjqDM_-Yjj2 zK$0N=E$+AI;_}kS8fVBH`&~Doi-JiCzsyIXATcM*Q>-)WwbU0*O~0CaOwGMY~+WjFZQ^mCc1g+ zTUCCOT4>F7r|hYn7yK&7#io#$Fs%M+M2h1g_0$8Op}&$T7C8#qGKd;7ynmccE{x1S zF6wsEX|;~bj{p;gAyd(9Tq+UjmEc3)MxUk$EFThWk|G4U$BY?gfEwKrf2*z64Gu=E z_Tcc(;k0XP;q;h5Vozv_*$={r-n8S`Ba-=1!T=-{B`im*WA930zKJ{!a{#?5#|qu03!>+62G2eeO&-A<60K{Fm9 z%OI)bx1A$}D`x@?yQdR-vW93#_VgeB=ED!{CcgZ^4~TzV@*vu8bl;=rh8(ckE*hRu zKGk0gd(-ne1O2qyus3fZ)R%D#fi17Q$T3Y)c!&SdYTM2p(NT6a>y{FeB|qP4wl>OL zclDvgV2!=X+?Sj|NnX)xTGb&hL&ZReTIPTGQ!>A7euQp9-_L>0&w?@QQuHHMH1x}8 z&Xx8ggpHi(FK9Ld!)AqzM^wDT$xKE(f1NTWespZ@DbgJlI4xD5!TGK$ca5Zqo#`ao zroZLM-<@_m?TiS#-|DA7mFQ0rC+seNF57YV6R@drFxYOPP4pT9@~2eHbhMkoQ?i0p zi7Og-OJoW*zZ)NTaHyDPDz}EZI_Y0Fp(TR}&EjetKH@^^OwYe2x$PCqd)Ot?t^#BI z;vaa}=dQlR|G0#G`lqjU6?_0LD>e?hFcU!d+r2-(BqK)5u%IMfx-b1VH~A67)PUQM z(n2%oTYsk2Kezpf*52q(6~M?IUMKjkH&>DGqyfCmJ>C)6F6o~h>OY!k_xs}r`*r+W z+5dNq|H6|2ZUfY!7M*|jg#kmGR)Y*6nUAwVp7KB`nP|vsCKJ-MU=1Bacm1NPW!FoOGu(aNm_F4!Oi;xSf zg`C!fwVprw(|J(F6q8ucTJ~Pdb;X1NzFmBoqQ`rWFiRFJQctO8bZ&sPhL>C z(|~l(l&`kN$}j;M7Yfqv5Oe$YTJ$UtE+3@|vVu?vD_t2Dkqm`}YV0ZLyz4laN@|HF zUJqQJ%vET(*=aVlV$drlVQ=?vd1c=SXVqwWS3~+>s^!==%pZvHCr$(s`C;u%G4^bC zWQJ4!D*|R zV3~+E6c&Q_O{POh^Qv`kZSG6)s3eL^qmK2M;u;hNz5~h;L@rD?TH`b_ zQVo@+fQW*!jQVR&a*_8u14nr)&t(z^_L?;02vOHc_%SJ$YzMUJ)B9z z8$N8i+$@vdCS3^5X%?wk#;Hjx^|bR=MF;6O^AD#82)!%S7a*Jd78E-G^>!G_67aMI zw|FR9Eaba*%VUrogbdIryn1jj(iR)j948RIE9!Yl-!q*Qpa@Kx zB1{z5piK9%0Gahd;GrHOdF#^mHNK)0INgUtjJf&r`12q7@fvOmX=OGjX6LC?a0to! z5!8E?BXW4=&SrUra%Dv914oqDBQ4gn5RKd495iE5 zW6c0RSzyO%2p3jEcpx_8PEswEs{W<(#IAw)`UbrX*mwA>mxyIy6nMc=!~`&#NkM&| zHFx8in2Af+BV0fG|lX3fj>a%M|lRE-sKS6DU)x(Ow_9R7$cG4W4Usf zVt;yVescZ*-AH0pi5O?FZBg98lUxxMIkM^<`T<|YnyP8QCtp=;`Nh=k5358Na>tu4 zo*gid3b?tLI7swreLVh~nIjwh@|bv#SsFVxjw{u|>cT9Fn&glM7W z0a}(wpz)uH22HXTAGQTyP2NqlHt5B}4+C))Lye-2zuy?o^`bTurx;fPm?5px?Vgr==Uwicvl68Chj8q*HzV!=kzc`Kkc2Qzla zlcM)ZsL`fhg$3ZlJ~_<^xJ<$nKI?6jkz*(q1Xjxms1XW@uYwIc9u}NQp{(!o#two< z8LP)iw8xx~HQ7+uXLG>~CHDU4P^H`&$GKe+jX5!(j6x5(pqc|9rwoh*|)xN;Bw_#}< zBe&!cTRX}~W~Zek$1hES1_&h8r$M3&TTM*eZmyFzJDaX*ITjycVma~AK}8sc;5(IG@crd!xev_lPnt#SLyyym6^33v>YK9L zu_3+r$k=xyX0-dOTpkt2WGH=*+-tG+Xf4|JI=vyn$@>hQX|3Z8cgPjs3!XD7FuKY2F&M{Mz5_NN_ZE&}kVTEJwLZOXUSjj{Z4 z9E3-Ikj(rmt}n3A@-{yh0tzx~=;SL?et3>LE9X(90L+=q>p|$g-ne8A#C<)Xm!V zYmn4km;IeE}??+3)S&iG?KdKBkdz6-*r_W=kabr+p<%(&X4G%+%>39LfA#G zV0LmGX|6Kw*@OBLT^Nr-^4f_n_A=>(abY1C?zAa_O(5j%-uC|BZ@a@?!XLCc@&(&z zMT{({7hKE70wbDGY(BGYP)-JR_etsMir*&A-WvJQ#QS(c6n5P_xMRa<=mQiYE?!Kf zb0?(Vo45dWwm{X;A$RDejc@A^=(||ke&r9zKv0b;qyA8l`3Z%AR2`ns5nse*s$N?lA@;Y7>wnN;Ek3)U@GgsnkUF8-sGgJ!3GuJ+rvV`$0AnrY zzM-Dc+_7p+P9SMh@wOV?rFS4zsC#?@y!d5E2hf6nYyJ6~c@ zc+di*460oCV&LMIJ()XSH-jy*sfez)Z!S4a<{C^ zbo~>x(9nK5{88^8|0E)EDFzfutYvKy?ZEP#{)`Y{f)Uk0m+C4WvPz^a=VQy04L!M) zQn*;BN)1@_eNL}swW|Eh$|~akMHQ)S$A|QEJ7i~krwrY~6SVKGIQ4{aq3KR#poQ?0 zTBt=Org;*26!8(j*?Q|{-on%CtL6hvpXzOH zKHDBGoRL|)lp`c!-O~}_Dbx$~oKn>e8>8QvK|}k9 zreutq3yH~wDXilR%U6H+lAwjUCASuGti&6A7{2H6)@&D`Ox}q?(?fSY2o#5ynDv(h zxIiqq-g`(pOnKK8w;7t=pTl^GhqXP`@KqnPeg=Bh;dNbwX>_i_WnW(RN)C@3c31fp z4ez^=$EdZ$$0bjf7-m9uQ&}F0)6aH%(3KFILA=kF`IbWkaltzmcVf*zRif-D!4&mr`@V|st*IbQWGic~)3R24ni@uh-ecgbUW6aD zuIHXd(wQY29Z$f%q%I=mA>s{=d72{jjhj#cpEt8t6f)u6B#E&OVf_wrib>+P@DN;}7WBpjA>xR0|Z?#e=#u!-$n8;^)%k8_x#g{g@ zw;{#+J5d{2EpmhhrbAkVEiEIsl;6KZ0UM~o)#mx0%jJb-i)VgcBI7}9`bq~(+Fs>g z$zBrC$9rQ8O8q@)tMpo?nj|_1>dc;B%h)HKL~zRf-=_JmBvm%mpFq{`ZRTrpTesf> z=3Nx`9T@4f&Ed?wu0S}y?IXM%fF_&{23wJ+>KwzcHkyS|2R+JM_Tt z8+YtbM6(k*;SO*7Q_r$dx$U%8k2f0h3+shUa%7w z6$D0nEpj-~c<|MuOxZEZ)bn3LZ@R^VtnA2e0lbhC`@p^&;bj;yU!S!NQ4Yhorx^LQ z=6Bo7E4N$u%VV4yG~P_X>Z&=X$|9+WYwMAP8o^{Qd5iq25{LT&tle1;=Y1w)gD)T9 z*MJZnQtwm5wvT)2Yjxq7Di?%ut^5G_2<2KdsWUil^jBk{R!w;P5#8=X(?4Zq+KmGM zYb^D-m|6y$UNCkwi0kc;fvcrhsTSYh5#eJZPj4oqTWv|WqLPGkeUH`mN@u~W%03P$ zT{7|{IEqv%JH9D(n!qG^yH<6??R6w8t3A`YA!HKBpEz_9<{HS!7vXyd)lSKlT zP}O7h+!4=guge||O>?nikeZ~q=PWlasx48ruS*j27f|+=J9z==4escYUBEGHZcEnh z4NKg)ACR1=2Wom4cnr#%`UA3WFRyYP*FxS+hFHy(R#o+@eflJ{jPYB{mt{A!G}n>u z{g)Is+^x0PA379Re}o$rY1_^MEZR!l&awJbc<3>Wp9bRN$Dj2?{8RS<8L|35xjyV& z2mMI%!EaGDM8)jVb)id64o9~6RTTo~FRf^j-i?m;Dhm--#;V|T(D@M%ZkN(@K3%M* zITv_wEs2xsX2yHG&22WSPIiGGaosZ*b@6iO)yY8~znw{oyBPetLETK~i)Fi3C7;@_(2x(~5S%G+$ACGG3$qs(WjGPxv-@&na>tC0r%Y%g`Ga+_+ z7a@#i1Dk#+>=n2)&22`$^Ain9K*8Z=aixAlt0#ntxNzGp;<|7PxsMa09q;vDYCYmy z^LH98|9&!EBt~)t{}SUCI*&Yx;aL85!V#9f&GCYewaADqx5ZX1g$ozIcfy zobuU=Nvj%Ms8?5evj<{kdo?exGuHh3!_{2`$yfax@*q@#1b;}A&KPx_8w%YRu}UrT z!-G^PZ<2>FVYxnI6%1=!V9in?Q+aJrk*yrEU5O?Z>U^60xA3@K1>;W+NiKSQzs0%- zwTdvlCH-)63wqrxsZ91;S4Wo5ZvN%BAp;`5BPg|%fR`bv`Yos3D-W+Q^zjc#l;@F2s22Cs;i!XuDx+Fp1aI9<;zoA)rIqf2p9; z;y%WZi8SgoSjYBDCH4C`x+;=l*&rGU^64>w-szn{Mce*{>EsOAxt7G9g$e*Pn?Pb{6(W46utg_92 zyrC0%)~8-+GD)c4SoNwopw+K?QkyKZXWRx{>iz;giN(Z#j0A4*NVH!l0bd@;4l3>m z-W2Li4<<3O7sI>9Dw6Q{U_BY4Ti5srf-F;f#nT0vo8zid4$DRSle0|DmxuGEoN7`h z%2q`80vcJU`ETv!n^UKSE|#x+9{2t?mvnE*xy+Y>`4EEi*BV&g* zOos5%1r2duRW|#3KhP9P5O#`s_F?agUr9mR;@@(6{dR!sx5L-@;Pp4#_?J28Lj5xt zG+jL*3ou_}?~uC)*z8;zN5l_IH2u zA4ZA4|Dn;^Y0p`Y6IN)%oXI@^MCtfm@I!>TCJZ)QU9nJ{Nru@#~b|r*ZzBt o03+u2|3~|OOp*Urll Date: Tue, 1 Sep 2026 12:40:14 -0400 Subject: [PATCH 06/21] Update language for TLS cipher deprecation notice (#39601) Updating date-specific language since tomorrow is Sep 1! --- .../content/en/data_security/guide/tls_ciphers_deprecation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hugo/content/en/data_security/guide/tls_ciphers_deprecation.md b/hugo/content/en/data_security/guide/tls_ciphers_deprecation.md index ed978b1d9fd..6bb5a27ac90 100644 --- a/hugo/content/en/data_security/guide/tls_ciphers_deprecation.md +++ b/hugo/content/en/data_security/guide/tls_ciphers_deprecation.md @@ -20,7 +20,7 @@ To test your client's cipher suite compatibility, connect to [tls-config-test.da {{< site-region region="us,eu,us3,us5,ap1,ap2,uk1" >}} -Effective September 1, 2026, Datadog will accept only the following cipher suites: +As of September 1, 2026, Datadog accepts only the following cipher suites: | Code | IANA Name | |--------------|---------------------------------------------------| @@ -59,7 +59,7 @@ Datadog has disabled support for the following cipher suites, which are consider ### Effective September 1, 2026 -Beginning **September 1, 2026**, Datadog will disable support for the following cipher suites: +As of **September 1, 2026**, Datadog does not support the following cipher suites: | Code | IANA Name | OpenSSL Name | |--------------|--------------------------------------------|--------------------------| From ff308cfddafff413a9253b74c0f6c60bdad95c47 Mon Sep 17 00:00:00 2001 From: Ethan Howes <134120826+ethan-howes@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:47:53 -0400 Subject: [PATCH 07/21] Fixed Typo: 'Ringstone' to 'Ringtone' in mobile guide (#39618) --- .../en/mobile/guide/configure-mobile-device-for-on-call.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugo/content/en/mobile/guide/configure-mobile-device-for-on-call.md b/hugo/content/en/mobile/guide/configure-mobile-device-for-on-call.md index b89afb54f7c..56b162385f8 100644 --- a/hugo/content/en/mobile/guide/configure-mobile-device-for-on-call.md +++ b/hugo/content/en/mobile/guide/configure-mobile-device-for-on-call.md @@ -127,7 +127,7 @@ For reliability, Datadog uses a rotating set of phone numbers to contact you. To 4. Under {{< ui >}}People{{< /ui >}}, allow notifications from the Datadog On-Call contact. If you enabled critical alerts for Datadog push applications, then the Datadog mobile app also appears under **Apps**. -5. To bypass silent mode, navigate to the Datadog On-Call contact >> tap {{< ui >}}Ringstone{{< /ui >}} >> activate {{< ui >}}Emergency Bypass{{< /ui >}}. +5. To bypass silent mode, navigate to the Datadog On-Call contact >> tap {{< ui >}}Ringtone{{< /ui >}} >> activate {{< ui >}}Emergency Bypass{{< /ui >}}. {{% /tab %}} {{% tab "Android" %}} From 36c135e8999d7feb79ae4fc8177ef8ee232e794f Mon Sep 17 00:00:00 2001 From: "dd-octo-sts[bot]" <200755185+dd-octo-sts[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:48:19 -0400 Subject: [PATCH 08/21] Add blog links to further_reading (week of 2026-08-25) (#39451) * Add blog links to further_reading (week of 2026-08-25) * Remove blog links that did not clear the affinity bar Manual affinity pass over the 52 pairings in the PR description. Removes 26 entries where a more specific page is the better home, the post only mentions the product in passing, or the target page is already saturated with blog links. * Update hugo/content/en/database_monitoring/_index.md * Apply batched suggestions from code review Co-authored-by: jeff-morgan-dd * Move Further reading section above reference link definitions --------- Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com> Co-authored-by: jeff.morgan --- hugo/content/en/data_observability/_index.md | 3 +++ hugo/content/en/data_streams/_index.md | 9 ++++++--- hugo/content/en/database_monitoring/_index.md | 6 +++--- .../experiments/concepts/cumulative_impact.md | 3 +++ .../experiments/statistics/analysis_methods.md | 3 +++ .../work_management/_index.md | 3 +++ .../work_management/automation_rules.md | 3 +++ .../work_management/create_work_item.md | 3 +++ .../notifications_integrations.md | 3 +++ .../work_management/view_and_manage/_index.md | 9 ++++++--- hugo/content/en/monitors/_index.md | 6 +++--- hugo/content/en/opentelemetry/_index.md | 3 +++ hugo/content/en/profiler/_index.md | 6 +++--- .../en/profiler/profile_visualizations.md | 12 ++++++------ hugo/content/en/real_user_monitoring/_index.md | 6 +++--- .../cloud_security_management/crown_jewels.md | 3 +++ .../runtime_prioritization_engine.md | 3 +++ .../static_analysis/ai_enhanced_sast.md | 3 +++ .../en/security/ticketing_integrations.md | 6 ++++++ hugo/content/en/serverless/_index.md | 18 +++++++++--------- .../serverless/aws_lambda/durable_functions.md | 11 +++++++++-- .../aws_lambda/instrumentation/nodejs.md | 3 +++ .../_index.md | 8 ++++++++ .../en/serverless/azure_functions/_index.md | 3 +++ .../trace_collection/span_links/_index.md | 3 +++ .../tracing/trace_pipeline/trace_retention.md | 9 ++++++--- 26 files changed, 110 insertions(+), 38 deletions(-) diff --git a/hugo/content/en/data_observability/_index.md b/hugo/content/en/data_observability/_index.md index 50e79a7403c..dd70c238d8b 100644 --- a/hugo/content/en/data_observability/_index.md +++ b/hugo/content/en/data_observability/_index.md @@ -8,6 +8,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/datadog-google-cloud-ai-stack/" tag: "Blog" text: "Evaluate, optimize, and secure your Google Cloud AI stack with Datadog" + - link: "https://www.datadoghq.com/blog/data-pipeline-monitoring/" + tag: "Blog" + text: "Data pipeline monitoring 101: Tracking health and performance across the data stack" --- ## Overview diff --git a/hugo/content/en/data_streams/_index.md b/hugo/content/en/data_streams/_index.md index a098c52c882..161b53f044a 100644 --- a/hugo/content/en/data_streams/_index.md +++ b/hugo/content/en/data_streams/_index.md @@ -14,6 +14,9 @@ further_reading: - link: '/internal_developer_portal/catalog/' tag: 'Documentation' text: 'Catalog' + - link: "https://learn.datadoghq.com/courses/monitor-a-kafka-pipeline-with-dsm" + tag: "Learning Center" + text: "Monitor a Kafka Pipeline with Data Streams Monitoring" - link: 'https://www.datadoghq.com/blog/data-streams-monitoring/' tag: 'Blog' text: 'Track and improve the performance of streaming data pipelines with Datadog Data Streams Monitoring' @@ -29,9 +32,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/data-observability/" tag: "Blog" text: "Ensure trust across the entire data life cycle with Datadog Data Observability" - - link: "https://learn.datadoghq.com/courses/monitor-a-kafka-pipeline-with-dsm" - tag: "Learning Center" - text: "Monitor a Kafka Pipeline with Data Streams Monitoring" + - link: "https://www.datadoghq.com/blog/data-pipeline-monitoring/" + tag: "Blog" + text: "Data pipeline monitoring 101: Tracking health and performance across the data stack" cascade: algolia: rank: 70 diff --git a/hugo/content/en/database_monitoring/_index.md b/hugo/content/en/database_monitoring/_index.md index a2934d4302f..a6d35ffeb1d 100644 --- a/hugo/content/en/database_monitoring/_index.md +++ b/hugo/content/en/database_monitoring/_index.md @@ -8,12 +8,12 @@ further_reading: - link: "/database_monitoring/troubleshooting/" tag: "Documentation" text: "Troubleshooting" -- link: "https://dtdg.co/fe" - tag: "Foundation Enablement" - text: "Join an interactive session to level up your Database Monitoring" - link: "https://learn.datadoghq.com/courses/database-monitoring" tag: "Learning Center" text: "Monitoring a Postgres Database with Datadog DBM" +- link: "https://dtdg.co/fe" + tag: "Foundation Enablement" + text: "Join an interactive session to level up your Database Monitoring" - link: "https://www.datadoghq.com/blog/map-postgresql-explain-plan-nodes-to-sql-with-datadog/" tag: "Blog" text: "Diagnose slow PostgreSQL queries faster with explain plan correlation" diff --git a/hugo/content/en/experiments/concepts/cumulative_impact.md b/hugo/content/en/experiments/concepts/cumulative_impact.md index 2af44d74dd1..8b1553a2120 100644 --- a/hugo/content/en/experiments/concepts/cumulative_impact.md +++ b/hugo/content/en/experiments/concepts/cumulative_impact.md @@ -15,6 +15,9 @@ further_reading: - link: "/experiments/statistics/analysis_methods" tag: "Documentation" text: "Analysis Methods" +- link: "https://www.datadoghq.com/blog/two-ways-to-measure-cumulative-impact/" + tag: "Blog" + text: "Two ways to measure the cumulative impact of experiments" --- ## Overview diff --git a/hugo/content/en/experiments/statistics/analysis_methods.md b/hugo/content/en/experiments/statistics/analysis_methods.md index 8086bdf41ed..307efc187f4 100644 --- a/hugo/content/en/experiments/statistics/analysis_methods.md +++ b/hugo/content/en/experiments/statistics/analysis_methods.md @@ -20,6 +20,9 @@ further_reading: - link: "/experiments/statistics/multiple_testing_correction" tag: "Documentation" text: "Multiple Testing Correction" +- link: "https://www.datadoghq.com/blog/two-ways-to-measure-cumulative-impact/" + tag: "Blog" + text: "Two ways to measure the cumulative impact of experiments" --- ## Overview diff --git a/hugo/content/en/incident_response/work_management/_index.md b/hugo/content/en/incident_response/work_management/_index.md index 8f509c898ef..36f803d3ed6 100644 --- a/hugo/content/en/incident_response/work_management/_index.md +++ b/hugo/content/en/incident_response/work_management/_index.md @@ -23,6 +23,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/datadog-service-management/" tag: "Blog" text: "Ensure high service availability with Datadog Service Management" +- link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" algolia: tags: ['inbox', 'work management', 'case management'] --- diff --git a/hugo/content/en/incident_response/work_management/automation_rules.md b/hugo/content/en/incident_response/work_management/automation_rules.md index c4c44394f9c..f44be8e2553 100644 --- a/hugo/content/en/incident_response/work_management/automation_rules.md +++ b/hugo/content/en/incident_response/work_management/automation_rules.md @@ -7,6 +7,9 @@ further_reading: - link: "/incident_response/work_management" tag: "Documentation" text: "Learn more about Work Management" +- link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" --- ## Overview diff --git a/hugo/content/en/incident_response/work_management/create_work_item.md b/hugo/content/en/incident_response/work_management/create_work_item.md index 54be76d1035..4a0ee5c24f8 100644 --- a/hugo/content/en/incident_response/work_management/create_work_item.md +++ b/hugo/content/en/incident_response/work_management/create_work_item.md @@ -10,6 +10,9 @@ further_reading: - link: "/incident_response/work_management/customization" tag: "Documentation" text: "Work Management Customization" +- link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" --- diff --git a/hugo/content/en/incident_response/work_management/notifications_integrations.md b/hugo/content/en/incident_response/work_management/notifications_integrations.md index cdfd6c9a45d..ee220c89cd9 100644 --- a/hugo/content/en/incident_response/work_management/notifications_integrations.md +++ b/hugo/content/en/incident_response/work_management/notifications_integrations.md @@ -14,6 +14,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/forms-case-management-requests/" tag: "Blog" text: "Simplify request flows with Datadog Forms and Case Management" +- link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" --- ## Overview diff --git a/hugo/content/en/incident_response/work_management/view_and_manage/_index.md b/hugo/content/en/incident_response/work_management/view_and_manage/_index.md index e5ff507a038..a25dfdbb812 100644 --- a/hugo/content/en/incident_response/work_management/view_and_manage/_index.md +++ b/hugo/content/en/incident_response/work_management/view_and_manage/_index.md @@ -4,12 +4,15 @@ aliases: - /service_management/case_management/view_and_manage/ - /incident_response/case_management/view_and_manage/ further_reading: -- link: "https://www.datadoghq.com/blog/datadog-risk-management" - tag: "Blog" - text: "How we centralize and remediate risks with Datadog Case Management" - link: "incident_response/work_management/settings" tag: "Documentation" text: "Work Management settings" +- link: "https://www.datadoghq.com/blog/datadog-risk-management" + tag: "Blog" + text: "How we centralize and remediate risks with Datadog Case Management" +- link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" --- ## Overview diff --git a/hugo/content/en/monitors/_index.md b/hugo/content/en/monitors/_index.md index 86eb4f47095..bc58ae0aa8d 100644 --- a/hugo/content/en/monitors/_index.md +++ b/hugo/content/en/monitors/_index.md @@ -11,12 +11,12 @@ further_reading: - link: "/api/v1/monitors/" tag: "Documentation" text: "Datadog Monitors API" - - link: "https://dtdg.co/fe" - tag: "Foundation Enablement" - text: "Join an interactive session on creating effective monitors" - link: "https://learn.datadoghq.com/courses/apm-monitors-and-alerting" tag: "Learning Center" text: "APM Monitors and Alerting" + - link: "https://dtdg.co/fe" + tag: "Foundation Enablement" + text: "Join an interactive session on creating effective monitors" - link: "https://www.datadoghq.com/blog/monitoring-101-alerting/" tag: "Blog" text: "Monitoring 101: Alerting on what matters" diff --git a/hugo/content/en/opentelemetry/_index.md b/hugo/content/en/opentelemetry/_index.md index df71907e084..45e57b54d4c 100644 --- a/hugo/content/en/opentelemetry/_index.md +++ b/hugo/content/en/opentelemetry/_index.md @@ -47,6 +47,9 @@ further_reading: - link: "https://learn.datadoghq.com/courses/understanding-opentelemetry" tag: "Learning Center" text: "Understanding OpenTelemetry" +- link: "https://www.datadoghq.com/blog/control-trace-volume-with-opentelemetry-tail-based-sampling/" + tag: "Blog" + text: "Control trace volume with OpenTelemetry tail-based sampling" algolia: tags: ['opentelemetry', 'open telemetry', 'otel'] cascade: diff --git a/hugo/content/en/profiler/_index.md b/hugo/content/en/profiler/_index.md index 096e91eb612..515c1dbc65d 100644 --- a/hugo/content/en/profiler/_index.md +++ b/hugo/content/en/profiler/_index.md @@ -16,6 +16,9 @@ further_reading: - link: '/extend/guide/data-collection-resolution/' tag: 'Documentation' text: 'Data collection and resolution' + - link: "https://learn.datadoghq.com/courses/profiling-timeline" + tag: "Learning Center" + text: "Optimize Request Latency with Profiling Timeline" - link: 'https://www.datadoghq.com/blog/source-code-preview/' tag: 'Blog' text: 'Focus on code that matters with source code previews in Continuous Profiler' @@ -49,9 +52,6 @@ further_reading: - link: "https://www.datadoghq.com/blog/gitlab-source-code-integration" tag: "Blog" text: "Troubleshoot faster with the GitLab Source Code integration in Datadog" - - link: "https://learn.datadoghq.com/courses/profiling-timeline" - tag: "Learning Center" - text: "Optimize Request Latency with Profiling Timeline" cascade: algolia: rank: 70 diff --git a/hugo/content/en/profiler/profile_visualizations.md b/hugo/content/en/profiler/profile_visualizations.md index 2115e9be2ed..11b78c29232 100644 --- a/hugo/content/en/profiler/profile_visualizations.md +++ b/hugo/content/en/profiler/profile_visualizations.md @@ -11,6 +11,12 @@ further_reading: - link: 'getting_started/profiler' tag: 'Documentation' text: 'Getting Started with Profiler' + - link: "https://learn.datadoghq.com/courses/continuous-profiler-course" + tag: "Learning Center" + text: "Diagnose Code Performance Issues with Continuous Profiler" + - link: "https://learn.datadoghq.com/courses/profiling-timeline" + tag: "Learning Center" + text: "Optimize Request Latency with Profiling Timeline" - link: 'https://www.datadoghq.com/blog/introducing-datadog-profiling/' tag: 'Blog' text: 'Introducing always-on production profiling in Datadog' @@ -20,12 +26,6 @@ further_reading: - link: 'https://www.datadoghq.com/blog/profiling-visualizations/' tag: 'Blog' text: 'Accessible profiling visualizations' - - link: "https://learn.datadoghq.com/courses/continuous-profiler-course" - tag: "Learning Center" - text: "Diagnose Code Performance Issues with Continuous Profiler" - - link: "https://learn.datadoghq.com/courses/profiling-timeline" - tag: "Learning Center" - text: "Optimize Request Latency with Profiling Timeline" --- diff --git a/hugo/content/en/real_user_monitoring/_index.md b/hugo/content/en/real_user_monitoring/_index.md index ac8ee44292b..a828728fb65 100644 --- a/hugo/content/en/real_user_monitoring/_index.md +++ b/hugo/content/en/real_user_monitoring/_index.md @@ -9,12 +9,12 @@ further_reading: - link: "/real_user_monitoring/application_monitoring/browser/data_collected/" tag: "Documentation" text: "RUM Browser Data Collected" -- link: "https://dtdg.co/fe" - tag: "Foundation Enablement" - text: "Join an interactive session to gain insights through Real User Monitoring" - link: "https://learn.datadoghq.com/courses/intro-to-rum" tag: "Learning Center" text: "Intro to Real User Monitoring (RUM)" +- link: "https://dtdg.co/fe" + tag: "Foundation Enablement" + text: "Join an interactive session to gain insights through Real User Monitoring" - link: "https://www.datadoghq.com/blog/ai-summaries-and-smart-chapters/" tag: "Blog" text: "Understand session replays faster with AI summaries and smart chapters" diff --git a/hugo/content/en/security/cloud_security_management/crown_jewels.md b/hugo/content/en/security/cloud_security_management/crown_jewels.md index fac0a3dd1a9..1479bf5bef3 100644 --- a/hugo/content/en/security/cloud_security_management/crown_jewels.md +++ b/hugo/content/en/security/cloud_security_management/crown_jewels.md @@ -13,6 +13,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/runtime-prioritization-engine/" tag: "Blog" text: "Prioritize security findings with the Datadog Runtime Prioritization Engine" +- link: "https://www.datadoghq.com/blog/cisa-bod-26-04-vulnerability-prioritization/" + tag: "Blog" + text: "How CISA’s BOD 26-04 changes vulnerability prioritization" --- ## Overview diff --git a/hugo/content/en/security/cloud_security_management/triage_and_prioritize/runtime_prioritization_engine.md b/hugo/content/en/security/cloud_security_management/triage_and_prioritize/runtime_prioritization_engine.md index a5533642c30..883d5ba0535 100644 --- a/hugo/content/en/security/cloud_security_management/triage_and_prioritize/runtime_prioritization_engine.md +++ b/hugo/content/en/security/cloud_security_management/triage_and_prioritize/runtime_prioritization_engine.md @@ -16,6 +16,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/datadog-security/" tag: "Blog" text: "Securing the AI era: Outpace AI-powered attacks with unified security and observability" +- link: "https://www.datadoghq.com/blog/cisa-bod-26-04-vulnerability-prioritization/" + tag: "Blog" + text: "How CISA’s BOD 26-04 changes vulnerability prioritization" --- {{< callout url=https://www.datadoghq.com/product-preview/runtime-prioritization-engine/ diff --git a/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md b/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md index 706122e3bc3..2178b84189b 100644 --- a/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md +++ b/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md @@ -20,6 +20,9 @@ further_reading: - link: "https://www.datadoghq.com/blog/sast-triage-agentic-evaluation-bits-memories/" tag: "Blog" text: "Reduce SAST false positives with agentic evaluation and Bits Memories" + - link: "https://www.datadoghq.com/blog/ai-native-sast-detect-llm-vulnerabilities/" + tag: "Blog" + text: "Detect vulnerabilities in LLM applications with Datadog’s AI-native SAST" --- Static Code Analysis (SAST) uses AI to help automate detection, validation, and remediation across the vulnerability management lifecycle. diff --git a/hugo/content/en/security/ticketing_integrations.md b/hugo/content/en/security/ticketing_integrations.md index 7c81bbde5dc..ae633fa956c 100644 --- a/hugo/content/en/security/ticketing_integrations.md +++ b/hugo/content/en/security/ticketing_integrations.md @@ -28,6 +28,9 @@ further_reading: - link: "/api/latest/security-monitoring/#create-cases-for-security-findings" tag: "API" text: "Ticketing integration API" + - link: "https://www.datadoghq.com/blog/work-management/" + tag: "Blog" + text: "Centralize human and agentic work with Datadog Work Management" aliases: - /security/cloud_security_management/review_remediate/jira --- @@ -335,6 +338,9 @@ Dedicated endpoints allow users to [create Datadog case for existing security fi Users can also [create Jira issues for security findings][18] and [attach security findings to a Jira issue][19]. +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} [1]: /incident_response/work_management/ [2]: /integrations/jira/ diff --git a/hugo/content/en/serverless/_index.md b/hugo/content/en/serverless/_index.md index 039ad6c5c1e..b24a4d7cc7a 100644 --- a/hugo/content/en/serverless/_index.md +++ b/hugo/content/en/serverless/_index.md @@ -8,21 +8,21 @@ aliases: - /tracing/serverless_functions/datadog_apm - /integrations/amazon_lambda/docs.datadoghq.com/serverless/ further_reading: -- link: "https://app.datadoghq.com/release-notes?category=Serverless" - tag: "Release Notes" - text: "Check out the latest Serverless releases! (App login required)." -- link: "https://www.datadoghq.com/state-of-serverless" - tag: "Blog" - text: "The State of Serverless" - link: "/serverless/installation/" tag: "Documentation" text: "Installing Serverless monitoring" -- link: "https://www.datadoghq.com/blog/azure-container-apps/" - tag: "Blog" - text: "Monitor Azure Container Apps with Datadog" - link: "https://dtdg.co/fe" tag: "Foundation Enablement" text: "Join an interactive session to learn more about serverless monitoring" +- link: "https://www.datadoghq.com/state-of-serverless" + tag: "Blog" + text: "The State of Serverless" +- link: "https://www.datadoghq.com/blog/azure-container-apps/" + tag: "Blog" + text: "Monitor Azure Container Apps with Datadog" +- link: "https://app.datadoghq.com/release-notes?category=Serverless" + tag: "Release Notes" + text: "Check out the latest Serverless releases! (App login required)." cascade: algolia: rank: 70 diff --git a/hugo/content/en/serverless/aws_lambda/durable_functions.md b/hugo/content/en/serverless/aws_lambda/durable_functions.md index fa8ae2397fe..fcfa55c0f22 100644 --- a/hugo/content/en/serverless/aws_lambda/durable_functions.md +++ b/hugo/content/en/serverless/aws_lambda/durable_functions.md @@ -2,7 +2,10 @@ title: Monitoring AWS Lambda Durable Functions description: Set up Datadog Serverless Monitoring for AWS Lambda Durable Functions. - +further_reading: +- link: "https://www.datadoghq.com/blog/trace-aws-lambda-durable-functions/" + tag: "Blog" + text: "Trace AWS Lambda durable functions with Datadog" --- Datadog provides full visibility into the metrics, logs, and traces for AWS Lambda Durable Function executions. In a single view, you can monitor your AWS Lambda Durable Functions alongside your other serverless compute services to spot bottlenecks and fix errors. @@ -206,6 +209,10 @@ Runtimes other than Node.js and Python are not supported. If you encounter an is If you encounter an issue with the CloudFormation stack, open an issue in the [cloudformation-template GitHub repository][8]. +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + [1]: /serverless/aws_lambda/instrumentation [2]: https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=datadog-durable-function-event-forwarder&templateURL=https://datadog-cloudformation-template.s3.amazonaws.com/aws/lambda-durable-function-event-forwarder/latest.yaml [3]: /account_management/api-app-keys/#api-keys @@ -215,4 +222,4 @@ If you encounter an issue with the CloudFormation stack, open an issue in the [c [7]: https://github.com/DataDog/datadog-lambda-extension [8]: https://github.com/DataDog/cloudformation-template/tree/master/aws_durable_function_event_forwarder [9]: /serverless/aws_lambda/logs/#enable-log-collection -[10]: /serverless/aws_lambda/managed_instances/ \ No newline at end of file +[10]: /serverless/aws_lambda/managed_instances/ diff --git a/hugo/content/en/serverless/aws_lambda/instrumentation/nodejs.md b/hugo/content/en/serverless/aws_lambda/instrumentation/nodejs.md index 40cbfb03bea..223b8e97e07 100644 --- a/hugo/content/en/serverless/aws_lambda/instrumentation/nodejs.md +++ b/hugo/content/en/serverless/aws_lambda/instrumentation/nodejs.md @@ -13,6 +13,9 @@ further_reading: - link: 'serverless/custom_metrics/' tag: 'Documentation' text: 'Submitting Custom Metrics from Serverless Applications' + - link: "https://www.datadoghq.com/blog/trace-aws-lambda-durable-functions/" + tag: "Blog" + text: "Trace AWS Lambda durable functions with Datadog" aliases: - /serverless/datadog_lambda_library/nodejs/ - /serverless/guide/nodejs/ diff --git a/hugo/content/en/serverless/azure_database_messaging_services/_index.md b/hugo/content/en/serverless/azure_database_messaging_services/_index.md index 173fd14482d..0036682bff8 100644 --- a/hugo/content/en/serverless/azure_database_messaging_services/_index.md +++ b/hugo/content/en/serverless/azure_database_messaging_services/_index.md @@ -1,5 +1,9 @@ --- title: Azure Database and Messaging Services +further_reading: +- link: "https://www.datadoghq.com/blog/monitor-azure-functions-hosting-plans/" + tag: "Blog" + text: "Monitor Azure Functions across every hosting plan with Datadog" --- ## Overview @@ -12,4 +16,8 @@ Datadog APM uses **inferred spans** to collect traces and trace metrics from Azu {{< image-card href="/serverless/azure_database_messaging_services/azure_service_bus/" src="integrations_logos/azure_service_bus.png" alt="azure_service_bus" >}} {{< /card-grid >}} +## Further reading + +{{< partial name="whats-next/whats-next.html" >}} + [1]: /serverless diff --git a/hugo/content/en/serverless/azure_functions/_index.md b/hugo/content/en/serverless/azure_functions/_index.md index 199c2fb48e3..e683ea7da5d 100644 --- a/hugo/content/en/serverless/azure_functions/_index.md +++ b/hugo/content/en/serverless/azure_functions/_index.md @@ -10,6 +10,9 @@ further_reading: - link: 'http://datadoghq.com/blog/azure-well-architected-serverless-applications-best-practices/' tag: 'Blog' text: 'Build secure and scalable Azure serverless applications with the Well-Architected Framework' + - link: "https://www.datadoghq.com/blog/monitor-azure-functions-hosting-plans/" + tag: "Blog" + text: "Monitor Azure Functions across every hosting plan with Datadog" --- ## Overview diff --git a/hugo/content/en/tracing/trace_collection/span_links/_index.md b/hugo/content/en/tracing/trace_collection/span_links/_index.md index ef07a677473..eb6b47e2573 100644 --- a/hugo/content/en/tracing/trace_collection/span_links/_index.md +++ b/hugo/content/en/tracing/trace_collection/span_links/_index.md @@ -11,6 +11,9 @@ further_reading: - link: '/tracing/trace_collection/custom_instrumentation/' tag: 'Documentation' text: 'Custom Instrumentation with Datadog Libraries' + - link: "https://www.datadoghq.com/blog/monitor-azure-functions-hosting-plans/" + tag: "Blog" + text: "Monitor Azure Functions across every hosting plan with Datadog" --- {{< img src="tracing/span_links/span_links_tab_2.png" alt="Span Links tab" style="width:90%;">}} diff --git a/hugo/content/en/tracing/trace_pipeline/trace_retention.md b/hugo/content/en/tracing/trace_pipeline/trace_retention.md index 2df6ce7d114..9e1376cf9bc 100644 --- a/hugo/content/en/tracing/trace_pipeline/trace_retention.md +++ b/hugo/content/en/tracing/trace_pipeline/trace_retention.md @@ -5,9 +5,6 @@ aliases: - /tracing/trace_retention/ - /tracing/trace_queries/one_percent_flat_sampling/ further_reading: -- link: "https://www.datadoghq.com/blog/rum-apm-retention-filters" - tag: "Blog" - text: "Unify and correlate frontend and backend data with retention filters" - link: "/tracing/trace_pipeline/ingestion_mechanisms" tag: "Documentation" text: "Ingestion Mechanisms" @@ -20,6 +17,12 @@ further_reading: - link: "https://learn.datadoghq.com/courses/apm-rate-limit-retention" tag: "Learning Center" text: "APM Rate Limiting and Retention" +- link: "https://www.datadoghq.com/blog/rum-apm-retention-filters" + tag: "Blog" + text: "Unify and correlate frontend and backend data with retention filters" +- link: "https://www.datadoghq.com/blog/trace-aws-lambda-durable-functions/" + tag: "Blog" + text: "Trace AWS Lambda durable functions with Datadog" - link: "https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/" tag: "Architecture Center" text: "Mastering Distributed tracing: data volume challenges, and Datadog's approach to efficient sampling" From ccdb65c79aad07292960e3c40a373f27313fbfe8 Mon Sep 17 00:00:00 2001 From: Duncan Hewett Date: Tue, 1 Sep 2026 12:54:11 -0400 Subject: [PATCH 09/21] Add APM Edge Devices to billing page (#39597) * Add APM Edge Devices billing section Documents the APM Edge Devices billing option for Edge/IoT devices, including the Datadog Agent configuration required to run in APM Edge mode. * Note minimum Agent version 7.75.0 for APM Edge Devices --------- Co-authored-by: Duncan Hewett <8017759+duncanhewett@users.noreply.github.com> --- .../billing/apm_tracing_profiler.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/hugo/content/en/account_management/billing/apm_tracing_profiler.md b/hugo/content/en/account_management/billing/apm_tracing_profiler.md index 3c698a9992b..2e874e46bf5 100644 --- a/hugo/content/en/account_management/billing/apm_tracing_profiler.md +++ b/hugo/content/en/account_management/billing/apm_tracing_profiler.md @@ -127,6 +127,29 @@ An AWS-Lambda based serverless application being invoked 10 million times in a m | Indexed Spans | 10 million | 150,000 Indexed Spans included with each 1 million Lambda invocations. $1.70 per million additional Indexed Spans | 8.5 * $1.70 | $14.45 | | Total | | | $50 + $14.45 | **$64.45 per month** | +## APM Edge Devices + +APM Edge Devices is a billing option for monitoring Edge and IoT devices with APM, such as point-of-sale (POS) systems, medical devices, autonomous vehicles, and industrial systems. APM Edge Devices is the same APM product as standard APM billing, with a billing model designed for Edge and IoT device fleets. For pricing, contact [Sales][8] or your [Customer Success Manager][9]. + +APM Edge Devices requires the standard Datadog Agent version 7.75.0 or later. The [Datadog IoT Agent][17] does not support APM. + +To identify a device as an APM Edge Device, configure the Datadog Agent to run in APM Edge mode with one of the following methods: + +- Set the `DD_APM_MODE` environment variable to `edge`: + + ```shell + DD_APM_MODE=edge + ``` + +- Add the following to the Agent's `datadog.yaml` configuration file: + + ```yaml + apm_config: + mode: edge + ``` + +**Note**: APM Edge Devices does not support OpenTelemetry. Contact [Sales][8] or your [Customer Success Manager][9] if your Edge or IoT devices require OpenTelemetry instrumentation. + ## FAQ **1. What is classified as an APM host for billing?** @@ -194,3 +217,4 @@ Yes. Let Datadog know if you are interested in buying Data Streams Monitoring wi [14]: /tracing/trace_pipeline/metrics [15]: /universal_service_monitoring/ [16]: https://www.datadoghq.com/pricing/?product=serverless-monitoring&tab=aws-fargate#products +[17]: /agent/iot/ From c9da296f54194a209f2f01db48575200d93b75e8 Mon Sep 17 00:00:00 2001 From: ethandebnath7702 Date: Tue, 1 Sep 2026 12:59:56 -0400 Subject: [PATCH 10/21] Document Kubernetes config-editing prerequisites in Fleet View (#39620) Add the API/application key requirement, cluster name behavior (required before Datadog Operator v1.30.0, optional after), and a copyable Helm install snippet to the "Prerequisites for Kubernetes view" section. Co-authored-by: Claude Opus 4.8 --- .../en/agent/fleet_automation/fleet_view.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/hugo/content/en/agent/fleet_automation/fleet_view.md b/hugo/content/en/agent/fleet_automation/fleet_view.md index 830c07e174d..82980286334 100644 --- a/hugo/content/en/agent/fleet_automation/fleet_view.md +++ b/hugo/content/en/agent/fleet_automation/fleet_view.md @@ -122,10 +122,28 @@ Most Kubernetes view features are available without version requirements. Specif | View `DatadogAgent` configuration | Datadog Operator v1.24 or later | | View Helm Chart values | Datadog Helm Chart v3.157.0 or later | | Edit configuration | [Remote Configuration][6] enabled and Datadog Operator v1.27 or later | +| Edit configuration without setting a cluster name | Datadog Operator v1.30.0 or later | | View integrations on a Cluster Agent | Agent v7.72.0 or later | | View integration status on a Cluster Agent | Agent v7.79.0 or later | -To edit configuration from Fleet View, also set the following flags in your [Operator configuration][7]: `remoteConfigEnabled`, `remoteUpdatesEnabled`, and `createControllerRevisions`. Editing Helm Chart values from Fleet View is not supported. +To edit configuration from Fleet View, set the following flags in your [Operator configuration][7]: `remoteConfigEnabled`, `remoteUpdatesEnabled`, and `createControllerRevisions`. Editing also requires a Datadog API key and application key to be configured. Editing Helm Chart values from Fleet View is not supported. + +On Datadog Operator versions earlier than v1.30.0, you must also set a cluster name (`clusterName`), otherwise the {{< ui >}}Edit{{< /ui >}} button remains disabled. As of Datadog Operator v1.30.0, a cluster name is optional. + +If you install the Datadog Operator with its Helm chart, you can enable the required flags together using the `previewFleetRollouts` value: + +{{< code-block lang="shell" >}} +helm repo add datadog https://helm.datadoghq.com +helm repo update + +helm upgrade --install datadog-operator datadog/datadog-operator \ + --set previewFleetRollouts=true \ + --set apiKeyExistingSecret=datadog-secret \ + --set appKeyExistingSecret=datadog-secret \ + --devel +{{< /code-block >}} + +Replace `datadog-secret` with the name of the Kubernetes Secret that holds your Datadog API and application keys. The `--devel` flag installs the latest development release of the chart. ### View Kubernetes clusters From 9a6ebb20bab5c1ca334a039befc434e9313b9846 Mon Sep 17 00:00:00 2001 From: Joshua Delgado <100707532+jdelgo@users.noreply.github.com> Date: Tue, 1 Sep 2026 13:19:32 -0400 Subject: [PATCH 11/21] Update docs to reflect C++ (#39595) --- .../security/code_security/static_analysis/ai_enhanced_sast.md | 1 + .../en/security/code_security/static_analysis/configuration.md | 1 + 2 files changed, 2 insertions(+) diff --git a/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md b/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md index 2178b84189b..ff54107533a 100644 --- a/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md +++ b/hugo/content/en/security/code_security/static_analysis/ai_enhanced_sast.md @@ -101,6 +101,7 @@ AI-native SAST uses a two-phase approach: | Elixir | Available | | Swift | Available | | Dart | Available | +| C++ | Available | ### Detected vulnerability types diff --git a/hugo/content/en/security/code_security/static_analysis/configuration.md b/hugo/content/en/security/code_security/static_analysis/configuration.md index 83e695b38f7..78048abbbd0 100644 --- a/hugo/content/en/security/code_security/static_analysis/configuration.md +++ b/hugo/content/en/security/code_security/static_analysis/configuration.md @@ -26,6 +26,7 @@ When AI-native SAST is enabled, its default rulesets run for the supported langu | Language | Ruleset | | --- | --- | | C# | `csharp-ai_sast` | +| C++ | `cpp-ai_sast` | | Dart | `dart-ai_sast` | | Elixir | `elixir-ai_sast` | | Go | `go-ai_sast` | From 16ba8610bc17ed646b0c7c7207eb81e4a955e654 Mon Sep 17 00:00:00 2001 From: Yiming Luo <10097700+lym953@users.noreply.github.com> Date: Tue, 1 Sep 2026 13:22:36 -0400 Subject: [PATCH 12/21] Clarify DD_LAMBDA_DURABLE_FUNCTION_LOG_BUFFER_SIZE defaults by extension version (#39623) * Clarify DD_LAMBDA_DURABLE_FUNCTION_LOG_BUFFER_SIZE defaults by extension version Co-Authored-By: Claude Opus 5 (1M context) * Reword v100+ default as "already 5" Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 5 (1M context) --- hugo/content/en/serverless/aws_lambda/durable_functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hugo/content/en/serverless/aws_lambda/durable_functions.md b/hugo/content/en/serverless/aws_lambda/durable_functions.md index fcfa55c0f22..61bab7c8670 100644 --- a/hugo/content/en/serverless/aws_lambda/durable_functions.md +++ b/hugo/content/en/serverless/aws_lambda/durable_functions.md @@ -22,13 +22,13 @@ Datadog provides full visibility into the metrics, logs, and traces for AWS Lamb - Datadog Node.js Lambda layer: v142+ - Datadog Python Lambda layer: v127+ -2. Set the following environment variable on your Lambda function: +2. If you use Datadog Lambda Extension v99, set the following environment variable on your Lambda function. For v100+, the default value is already `5`, so you don't need to set it explicitly. ```text DD_LAMBDA_DURABLE_FUNCTION_LOG_BUFFER_SIZE=5 ``` - This environment variable configures the Datadog Lambda Extension to buffer logs and enrich them with the durable execution context sent by the Datadog Lambda Library. Set its value to a non-negative integer specifying the maximum number of invocations whose logs are buffered. The default, `0`, disables enrichment, so durable executions do not appear in Datadog. + This environment variable configures the Datadog Lambda Extension to buffer logs and enrich them with the durable execution context sent by the Datadog Lambda Library. Set its value to a non-negative integer specifying the maximum number of invocations whose logs are buffered. A value of `0` disables enrichment, so durable executions do not appear in Datadog. In v99, the default is `0`; in v100+, the default is `5`. ### Forward durable execution events From e7378ca2e49d6ea9cd36d78ff49a4b0ef0990221 Mon Sep 17 00:00:00 2001 From: Federico Mon Date: Tue, 1 Sep 2026 20:21:42 +0200 Subject: [PATCH 13/21] docs(test_parallelization): reflect pytest --command support (#39548) * docs(test_parallelization): reflect pytest --command support since 1.7.0 ddtest PR DataDog/ddtest#123 made PyTest.RunTests and DiscoverTests honor commandOverride (--command / DD_TEST_OPTIMIZATION_RUNNER_COMMAND) instead of hardcoding 'python -m pytest'. Update the configuration and best_practices pages to describe the override and retain PYTEST_ADDOPTS guidance for passing extra flags. * Replace "Since ..." with "For versions ... and later" Co-authored-by: Heston Hoffman --------- Co-authored-by: Heston Hoffman --- .../en/tests/test_parallelization/best_practices.md | 2 +- .../en/tests/test_parallelization/configuration.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hugo/content/en/tests/test_parallelization/best_practices.md b/hugo/content/en/tests/test_parallelization/best_practices.md index b5be37783c8..e67c622c979 100644 --- a/hugo/content/en/tests/test_parallelization/best_practices.md +++ b/hugo/content/en/tests/test_parallelization/best_practices.md @@ -120,7 +120,7 @@ If you execute tests with another command, set the same environment variable for ## Configure pytest -`ddtest` runs pytest as `python -m pytest` and appends the selected test files. It appends `--ddtrace` to `PYTEST_ADDOPTS`, preserving any existing value, so the `ddtrace` pytest plugin loads without changing your pytest config. +`ddtest` runs pytest as `python -m pytest` by default and appends the selected test files. For versions 1.7.0 and later, set `--command` to override the base command. For example, `--command pytest` runs the `pytest` console script instead of `python -m pytest`. `ddtest` runs ` ` and does not add `-m pytest`. It appends `--ddtrace` to `PYTEST_ADDOPTS`, preserving any existing value, so the `ddtrace` pytest plugin loads without changing your pytest config. To pass extra pytest flags without changing the base command, use `PYTEST_ADDOPTS`. For test discovery, `ddtest` reads `testpaths` and `python_files` from `pytest.ini`, `pyproject.toml`, `tox.ini`, or `setup.cfg`. If no pytest config defines those settings, `ddtest` uses `**/{test_*,*_test}.py`. diff --git a/hugo/content/en/tests/test_parallelization/configuration.md b/hugo/content/en/tests/test_parallelization/configuration.md index 9cfa789bee9..1082aff09d8 100644 --- a/hugo/content/en/tests/test_parallelization/configuration.md +++ b/hugo/content/en/tests/test_parallelization/configuration.md @@ -30,10 +30,10 @@ Most `ddtest` settings can be passed as a CLI flag or as an environment variable **Supported values:** `rspec`, `minitest`, `pytest`, `jest` `DD_TEST_OPTIMIZATION_RUNNER_COMMAND` -: Overrides the default test command for Ruby and JavaScript. `ddtest` appends selected test files and framework-specific flags to the command. For pytest, use `PYTEST_ADDOPTS` instead. For more information, see [Custom test commands](#custom-test-commands).
+: Overrides the default test command. `ddtest` appends selected test files and framework-specific flags to the command. Supported for Ruby, JavaScript, and Python. Python support requires ddtest 1.7.0 or later. For ddtest versions prior to 1.7.0 with pytest, the command cannot be changed. Pass extra flags with `PYTEST_ADDOPTS`. For more information, see [Custom test commands](#custom-test-commands).
**CLI flag:** `--command`
**Default:** Empty
-**Example:** `bundle exec rspec --profile`, `pnpm jest --runInBand` +**Example:** `bundle exec rspec --profile`, `pnpm jest --runInBand`, `pytest` `DD_TEST_OPTIMIZATION_RUNNER_MIN_PARALLELISM` : Minimum CI node or worker count `ddtest` considers when planning.
@@ -158,7 +158,7 @@ When using `--command`, do not include test files in the command. `ddtest` appen Do not include the `--` separator in `--command`. If the command contains `--`, `ddtest` emits a warning and removes the separator and everything after it. -For pytest, `ddtest` runs `python -m pytest` and appends selected test files. Use `PYTEST_ADDOPTS` to pass additional pytest flags. `ddtest` appends `--ddtrace` to `PYTEST_ADDOPTS` automatically so the `ddtrace` pytest plugin loads without changing your pytest config. +For pytest, `ddtest` runs `python -m pytest ` by default. For versions 1.7.0 and later, set `--command` to override the base command. For example, `--command pytest` runs the `pytest` console script instead of `python -m pytest`. `ddtest` runs ` ` and does not add `-m pytest`. To pass extra pytest flags without changing the base command, use `PYTEST_ADDOPTS`. `ddtest` appends `--ddtrace` to `PYTEST_ADDOPTS` automatically so the `ddtrace` pytest plugin loads without changing your pytest config. For Jest, `ddtest` prepends `-r dd-trace/ci/init` to `NODE_OPTIONS` for worker processes unless it is already present, so the `dd-trace` package must be installed in the project where `ddtest` runs. @@ -170,7 +170,7 @@ For pytest, `ddtest` discovers test files using this priority: 2. Pytest configuration from `pytest.ini`, `pyproject.toml`, `tox.ini`, or `setup.cfg`, using `testpaths` and `python_files`. 3. The built-in pattern `**/{test_*,*_test}.py`. -Pytest does not have an equivalent to RSpec's pattern flag, so `ddtest` resolves the pattern to explicit file paths before invoking `python -m pytest`. +Pytest does not have an equivalent to RSpec's pattern flag, so `ddtest` resolves the pattern to explicit file paths before invoking the configured pytest command. The default is `python -m pytest`. For versions 1.7.0 and later, `--command` overrides it. ## Jest test discovery and instrumentation From 9865b168eb5c04d3433338c80472cd696726ac79 Mon Sep 17 00:00:00 2001 From: Joe Peeples Date: Tue, 1 Sep 2026 14:27:53 -0400 Subject: [PATCH 14/21] [DOCS-15511] Explain MCP Server data handling with AI providers (#39587) * Add data handling and AI providers section to MCP Server docs * Apply suggestions from automated review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- hugo/content/en/mcp_server/_index.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/hugo/content/en/mcp_server/_index.md b/hugo/content/en/mcp_server/_index.md index d85f377ccd8..f318d1a3093 100644 --- a/hugo/content/en/mcp_server/_index.md +++ b/hugo/content/en/mcp_server/_index.md @@ -72,6 +72,28 @@ This demo shows the Datadog MCP Server being used in Cursor and Claude Code (unm - The Datadog MCP Server is not GovCloud compatible. - Datadog collects certain information about your usage of the Remote Datadog MCP Server, including how you interact with it, whether errors occurred while using it, what caused those errors, and user identifiers in accordance with the Datadog Privacy Policy and Datadog's EULA. This data is used to help improve the server's performance and features, including transitions to and from the server and the applicable Datadog login page for accessing the Services, and context (for example, user prompts) leading to the use of MCP tools. The data is stored for 120 days. +## Data handling and AI providers + +The Datadog MCP Server does not send your Datadog data to a third-party AI provider. Your AI client and its model determine what Datadog data is sent to your AI provider. That data flow is governed by your agreement with that provider, not by Datadog. + +### What the Datadog MCP Server receives and returns + +The MCP Server receives individual tool calls, such as a request to search logs with a given query. It does not receive your prompt or the model's reasoning, only the tool name and its arguments. The MCP Server returns results to the calling client and makes no outbound calls to external domains. Any web search, webhook, or other external integration you configure in your AI client runs on the client side. + +Most MCP Server tools, such as `search_datadog_logs`, query Datadog backends directly with no AI model involved. A small number of tools do use AI models hosted by Datadog's AI providers. Examples include tools that perform semantic search or build a query from a natural language description. To disable generative AI providers for your entire organization, contact [Datadog support][37]. + +### Restrict which data the Datadog MCP Server can access + +The MCP Server forwards the authenticated user's own credentials to Datadog APIs. Your existing access controls apply exactly as they do for direct API or UI access. The MCP Server cannot grant a user access beyond what that user already has. It cannot reach resources that are not visible to that user in the Datadog UI. + +Because your AI client controls what it sends to its model provider, limiting what a provider can receive means limiting what the MCP Server returns. To scope the data an MCP Server user can retrieve, use: + +- [Role-based access control (RBAC)][38] to grant permissions by role. +- [Data Access Control][39] to restrict which users can read sensitive data, such as logs or APM spans. +- [Log restriction queries][40] to limit a role's log access to the subset of logs matching a query. + +Write operations require the corresponding permission, such as `monitors_write`, and the MCP Server checks it on each tool call. A read-only user's call to a write-enabled tool is rejected. + ## Fair-use rate limits The MCP Server comes with the following fair-use limits: @@ -130,3 +152,6 @@ The Datadog MCP Server is under significant development. Use [this feedback form [27]: /mcp_server/setup [28]: /mcp_server/setup#toolsets [37]: https://help.datadoghq.com/hc/en-us/requests/new +[38]: /account_management/rbac/ +[39]: /account_management/rbac/data_access/ +[40]: /logs/guide/logs-rbac-permissions/?tab=ui#create-a-restriction-query From 70944feff26ee63eb42d1de048a32d391b5b6ba1 Mon Sep 17 00:00:00 2001 From: "webops-guacbot[bot]" <214537265+webops-guacbot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 11:37:05 -0700 Subject: [PATCH 15/21] Updates 160 translation(s) (#39611) Co-authored-by: webops-guacbot[bot] <214537265+webops-guacbot[bot]@users.noreply.github.com> --- .../org_settings/cross_app_access.md | 214 +++ .../es/account_management/teams/_index.md | 213 +-- .../actions/app_builder/components/_index.md | 1202 ++++++++------ .../es/actions/connections/integration.md | 105 ++ .../es/actions/private_actions/_index.md | 94 +- .../content/es/agent/configuration/network.md | 150 +- .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../list-patterns-runs/index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../search-agent-observability-spans/index.md | 3 + .../delete-a-teams-ownership-mapping/index.md | 3 + .../delete-a-severity-modifier-rule/index.md | 3 + .../update-a-usage-quota/index.md | 3 + hugo/content/es/cli/_index.md | 84 +- .../recommendations/_index.md | 754 +++++---- ...ery-with-the-datadoginstrumentation-crd.md | 281 ++++ .../es/containers/kubernetes/distributions.md | 337 +++- .../es/dashboards/graph_insights/_index.md | 47 +- hugo/content/es/data_security/agent.md | 231 ++- .../data_security/data_retention_periods.md | 186 ++- .../guide/sql_extended_events.md | 422 +++++ .../backend/exception_replay.md | 167 +- hugo/content/es/events/triage_inbox.md | 69 + hugo/content/es/experiments/_index.md | 105 ++ .../content/es/feature_flags/server/_index.md | 204 +++ .../es/getting_started/integrations/_index.md | 220 +-- hugo/content/es/integrations/_index.md | 48 +- ...tric-streams-with-kinesis-data-firehose.md | 217 ++- .../prompt_templating.md | 187 +++ .../guide/agent_monitoring.md | 42 + .../guide/monitor_proxy_services.md | 189 +++ .../es/llm_observability/improve/datasets.md | 258 +++ .../es/llm_observability/instrument/_index.md | 85 + .../instrument/agent_observability_and_apm.md | 73 + .../es/llm_observability/instrument/api.md | 707 +++++++++ .../es/llm_observability/quickstart/_index.md | 247 +++ .../es/logs/log_configuration/parsing.md | 320 ++-- hugo/content/es/monitors/status/events.md | 71 +- .../destinations/datadog_byoc_logs.md | 86 + .../pipeline_usage_metrics.md | 438 +++++ .../processors/dedupe.md | 45 +- .../sources/logstash.md | 78 +- .../sources/sumo_logic.md | 49 +- .../mapping/service_entry_spans.md | 75 + .../charts/funnel_analysis.md | 181 +-- .../es/product_analytics/charts/pathways.md | 67 +- .../operations_monitoring.md | 434 +++++ .../automation_pipelines/modify_severity.md | 128 ++ .../es/security/cloud_siem/guide/_index.md | 17 +- .../pull_request_comments/_index.md | 186 ++- .../es/security/manual_severity_adjustment.md | 96 ++ .../es/security/workload_protection/_index.md | 145 +- .../detection_rules.md | 100 ++ .../finding_rules.md | 82 + .../workload_protection/setup/linux_ebpf.md | 97 ++ .../google_cloud_run/containers/_index.md | 66 +- hugo/content/es/synthetics/_index.md | 151 +- .../guide/ingestion_sampling_use_cases.md | 147 +- .../es/tracing/recommendations/_index.md | 255 ++- .../tracing/trace_pipeline/trace_retention.md | 209 +++ .../api/latest/agent-observability/_index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 4 + .../index.md | 3 + .../index.md | 3 + .../get-a-rum-exclusion-filter/index.md | 3 + .../update-a-rum-exclusion-filter/index.md | 3 + .../usage-metering/list-usage-quotas/index.md | 3 + .../update-a-usage-quota/index.md | 3 + .../troubleshooting/admission-controller.md | 176 +- .../guide/sql_extended_events.md | 422 +++++ .../fr/ide_plugins/vscode/code_security.md | 130 ++ .../prompt_templating.md | 187 +++ .../packs/abnormal_ai_threats.md | 15 + .../sources/logstash.md | 69 + .../rum_without_limits/retention_filters.md | 202 +++ .../workload_protection/setup/docker.md | 50 + .../troubleshooting/threats.md | 240 +++ .../aws_lambda/instrumentation/_index.md | 74 +- hugo/content/fr/synthetics/_index.md | 101 +- .../guide/ingestion_sampling_use_cases.md | 171 ++ .../trace_pipeline/ingestion_controls.md | 194 +-- hugo/content/ja/agent/logs/_index.md | 21 +- .../ja/agent/supported_platforms/linux.md | 15 +- .../ja/agent/supported_platforms/windows.md | 25 +- .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../search-agent-observability-spans/index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../index.md | 3 + .../compute-a-sankey-diagram/index.md | 3 + .../usage-metering/list-usage-quotas/index.md | 3 + .../update-a-usage-quota/index.md | 3 + .../widgets/profiling_flame_graph.md | 65 +- hugo/content/ja/experiments/_index.md | 104 ++ .../on-call/pages/live_call_routing.md | 124 ++ .../instrument/agentic/nodejs.md | 58 + .../llm_observability/instrumentation/sdk.md | 1414 ++++++++++++----- .../increase-number-of-log-files-tailed.md | 11 +- .../configuration/_index.md | 146 ++ .../destinations/amazon_opensearch.md | 101 +- .../destinations/azure_storage.md | 137 ++ .../destinations/datadog_archives.md | 217 +++ .../destinations/datadog_logs.md | 209 +++ .../destinations/google_cloud_storage.md | 143 ++ .../destinations/opensearch.md | 102 ++ .../destinations/opentelemetry/traces.md | 84 + .../destinations/syslog.md | 87 +- .../guide/remap_reserved_attributes.md | 172 ++ .../sources/lambda_extension.md | 41 + .../sources/logstash.md | 68 + .../setup/ddot_collector/install/windows.md | 343 ++++ .../identify-unauthorized-anomalous-procs.md | 41 +- .../static_analysis/configuration.md | 329 ++++ .../detect_and_monitor/agent_rules/_index.md | 37 + .../detect_and_monitor/threat_intelligence.md | 66 + .../workload_protection/guide/_index.md | 17 + .../workload_protection/inventory/_index.md | 90 ++ .../inventory/review_improve_coverage.md | 67 + .../troubleshooting/threats.md | 239 +++ .../aws_lambda/instrumentation/_index.md | 68 +- hugo/content/ko/actions/forms/_index.md | 180 +++ hugo/content/ko/agent/logs/_index.md | 9 +- .../ko/agent/supported_platforms/linux.md | 5 +- .../ko/agent/supported_platforms/windows.md | 3 +- .../index.md | 3 + .../index.md | 3 + .../compute-a-sankey-diagram/index.md | 3 + .../create-a-teams-ownership-mapping/index.md | 3 + .../update-a-severity-modifier-rule/index.md | 3 + .../usage-metering/list-usage-quotas/index.md | 3 + .../update-a-usage-quota/index.md | 3 + .../recommendations/_index.md | 370 +++-- .../ko/data_security/real_user_monitoring.md | 160 ++ .../ko/getting_started/notebooks/_index.md | 91 ++ .../ko/journey_monitoring/map/_index.md | 60 + .../ko/network_monitoring/netflow/_index.md | 47 +- .../destinations/sentinelone.md | 91 ++ .../packs/aws_config.md | 15 + .../ko/observability_pipelines/replay.md | 63 + .../observability_pipelines/sources/socket.md | 164 ++ .../mapping/service_entry_spans.md | 75 + .../ko/security/cloud_siem/guide/_index.md | 13 +- .../detect_and_monitor/agent_rules/_index.md | 38 + .../inventory/review_improve_coverage.md | 68 + .../security_signals/investigate.md | 72 + .../workload_protection/setup/ecs_ec2.md | 185 +++ .../fr/options/general.yaml | 589 +++++++ hugo/data/partials/home.es.yaml | 204 +-- hugo/data/partials/home.ja.yaml | 182 ++- 160 files changed, 16757 insertions(+), 3384 deletions(-) create mode 100644 hugo/content/es/account_management/org_settings/cross_app_access.md create mode 100644 hugo/content/es/actions/connections/integration.md create mode 100644 hugo/content/es/api/latest/agent-observability/create-a-new-agent-observability-prompt-version/index.md create mode 100644 hugo/content/es/api/latest/agent-observability/delete-agent-observability-dataset-records/index.md create mode 100644 hugo/content/es/api/latest/agent-observability/list-agent-observability-experiments/index.md create mode 100644 hugo/content/es/api/latest/agent-observability/list-patterns-runs/index.md create mode 100644 hugo/content/es/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md create mode 100644 hugo/content/es/api/latest/llm-observability/delete-agent-observability-datasets/index.md create mode 100644 hugo/content/es/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md create mode 100644 hugo/content/es/api/latest/llm-observability/list-agent-observability-experiment-events-v2/index.md create mode 100644 hugo/content/es/api/latest/llm-observability/search-agent-observability-spans/index.md create mode 100644 hugo/content/es/api/latest/rum-teams-ownership/delete-a-teams-ownership-mapping/index.md create mode 100644 hugo/content/es/api/latest/security-monitoring/delete-a-severity-modifier-rule/index.md create mode 100644 hugo/content/es/api/latest/usage-metering/update-a-usage-quota/index.md create mode 100644 hugo/content/es/containers/guide/configure-autodiscovery-with-the-datadoginstrumentation-crd.md create mode 100644 hugo/content/es/database_monitoring/guide/sql_extended_events.md create mode 100644 hugo/content/es/events/triage_inbox.md create mode 100644 hugo/content/es/experiments/_index.md create mode 100644 hugo/content/es/feature_flags/server/_index.md create mode 100644 hugo/content/es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md create mode 100644 hugo/content/es/llm_observability/guide/agent_monitoring.md create mode 100644 hugo/content/es/llm_observability/guide/monitor_proxy_services.md create mode 100644 hugo/content/es/llm_observability/improve/datasets.md create mode 100644 hugo/content/es/llm_observability/instrument/_index.md create mode 100644 hugo/content/es/llm_observability/instrument/agent_observability_and_apm.md create mode 100644 hugo/content/es/llm_observability/instrument/api.md create mode 100644 hugo/content/es/llm_observability/quickstart/_index.md create mode 100644 hugo/content/es/observability_pipelines/destinations/datadog_byoc_logs.md create mode 100644 hugo/content/es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics.md create mode 100644 hugo/content/es/opentelemetry/mapping/service_entry_spans.md create mode 100644 hugo/content/es/real_user_monitoring/operations_monitoring.md create mode 100644 hugo/content/es/security/automation_pipelines/modify_severity.md create mode 100644 hugo/content/es/security/manual_severity_adjustment.md create mode 100644 hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules.md create mode 100644 hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules.md create mode 100644 hugo/content/es/security/workload_protection/setup/linux_ebpf.md create mode 100644 hugo/content/es/tracing/trace_pipeline/trace_retention.md create mode 100644 hugo/content/fr/api/latest/agent-observability/_index.md create mode 100644 hugo/content/fr/api/latest/agent-observability/create-an-agent-observability-annotation-queue/index.md create mode 100644 hugo/content/fr/api/latest/agent-observability/delete-annotation-queue-interactions/index.md create mode 100644 hugo/content/fr/api/latest/agent-observability/export-an-agent-observability-dataset/index.md create mode 100644 hugo/content/fr/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md create mode 100644 hugo/content/fr/api/latest/llm-observability/delete-agent-observability-datasets/index.md create mode 100644 hugo/content/fr/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md create mode 100644 hugo/content/fr/api/latest/rum-retention-filters/get-a-rum-exclusion-filter/index.md create mode 100644 hugo/content/fr/api/latest/rum-retention-filters/update-a-rum-exclusion-filter/index.md create mode 100644 hugo/content/fr/api/latest/usage-metering/list-usage-quotas/index.md create mode 100644 hugo/content/fr/api/latest/usage-metering/update-a-usage-quota/index.md create mode 100644 hugo/content/fr/database_monitoring/guide/sql_extended_events.md create mode 100644 hugo/content/fr/ide_plugins/vscode/code_security.md create mode 100644 hugo/content/fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md create mode 100644 hugo/content/fr/observability_pipelines/packs/abnormal_ai_threats.md create mode 100644 hugo/content/fr/observability_pipelines/sources/logstash.md create mode 100644 hugo/content/fr/real_user_monitoring/rum_without_limits/retention_filters.md create mode 100644 hugo/content/fr/security/workload_protection/setup/docker.md create mode 100644 hugo/content/fr/security/workload_protection/troubleshooting/threats.md create mode 100644 hugo/content/fr/tracing/guide/ingestion_sampling_use_cases.md create mode 100644 hugo/content/ja/api/latest/agent-observability/delete-agent-observability-experiments/index.md create mode 100644 hugo/content/ja/api/latest/agent-observability/list-agent-observability-dataset-versions/index.md create mode 100644 hugo/content/ja/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md create mode 100644 hugo/content/ja/api/latest/agent-observability/restore-an-agent-observability-dataset-version/index.md create mode 100644 hugo/content/ja/api/latest/agent-observability/search-agent-observability-spans/index.md create mode 100644 hugo/content/ja/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md create mode 100644 hugo/content/ja/api/latest/llm-observability/list-events-for-an-agent-observability-experiment/index.md create mode 100644 hugo/content/ja/api/latest/llm-observability/update-agent-observability-dataset-records/index.md create mode 100644 hugo/content/ja/api/latest/product-analytics/compute-a-sankey-diagram/index.md create mode 100644 hugo/content/ja/api/latest/usage-metering/list-usage-quotas/index.md create mode 100644 hugo/content/ja/api/latest/usage-metering/update-a-usage-quota/index.md create mode 100644 hugo/content/ja/experiments/_index.md create mode 100644 hugo/content/ja/incident_response/on-call/pages/live_call_routing.md create mode 100644 hugo/content/ja/llm_observability/instrument/agentic/nodejs.md create mode 100644 hugo/content/ja/observability_pipelines/configuration/_index.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/azure_storage.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/datadog_archives.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/datadog_logs.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/google_cloud_storage.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/opensearch.md create mode 100644 hugo/content/ja/observability_pipelines/destinations/opentelemetry/traces.md create mode 100644 hugo/content/ja/observability_pipelines/guide/remap_reserved_attributes.md create mode 100644 hugo/content/ja/observability_pipelines/sources/lambda_extension.md create mode 100644 hugo/content/ja/observability_pipelines/sources/logstash.md create mode 100644 hugo/content/ja/opentelemetry/setup/ddot_collector/install/windows.md create mode 100644 hugo/content/ja/security/code_security/static_analysis/configuration.md create mode 100644 hugo/content/ja/security/workload_protection/detect_and_monitor/agent_rules/_index.md create mode 100644 hugo/content/ja/security/workload_protection/detect_and_monitor/threat_intelligence.md create mode 100644 hugo/content/ja/security/workload_protection/guide/_index.md create mode 100644 hugo/content/ja/security/workload_protection/inventory/_index.md create mode 100644 hugo/content/ja/security/workload_protection/inventory/review_improve_coverage.md create mode 100644 hugo/content/ja/security/workload_protection/troubleshooting/threats.md create mode 100644 hugo/content/ko/actions/forms/_index.md create mode 100644 hugo/content/ko/api/latest/llm-observability/update-an-agent-observability-experiment/index.md create mode 100644 hugo/content/ko/api/latest/llm-observability/update-an-agent-observability-prompt/index.md create mode 100644 hugo/content/ko/api/latest/product-analytics/compute-a-sankey-diagram/index.md create mode 100644 hugo/content/ko/api/latest/rum-teams-ownership/create-a-teams-ownership-mapping/index.md create mode 100644 hugo/content/ko/api/latest/security-monitoring/update-a-severity-modifier-rule/index.md create mode 100644 hugo/content/ko/api/latest/usage-metering/list-usage-quotas/index.md create mode 100644 hugo/content/ko/api/latest/usage-metering/update-a-usage-quota/index.md create mode 100644 hugo/content/ko/data_security/real_user_monitoring.md create mode 100644 hugo/content/ko/getting_started/notebooks/_index.md create mode 100644 hugo/content/ko/journey_monitoring/map/_index.md create mode 100644 hugo/content/ko/observability_pipelines/destinations/sentinelone.md create mode 100644 hugo/content/ko/observability_pipelines/packs/aws_config.md create mode 100644 hugo/content/ko/observability_pipelines/replay.md create mode 100644 hugo/content/ko/observability_pipelines/sources/socket.md create mode 100644 hugo/content/ko/opentelemetry/mapping/service_entry_spans.md create mode 100644 hugo/content/ko/security/workload_protection/detect_and_monitor/agent_rules/_index.md create mode 100644 hugo/content/ko/security/workload_protection/inventory/review_improve_coverage.md create mode 100644 hugo/content/ko/security/workload_protection/investigate_and_triage/security_signals/investigate.md create mode 100644 hugo/content/ko/security/workload_protection/setup/ecs_ec2.md create mode 100644 hugo/customization_config/fr/options/general.yaml diff --git a/hugo/content/es/account_management/org_settings/cross_app_access.md b/hugo/content/es/account_management/org_settings/cross_app_access.md new file mode 100644 index 00000000000..d69ded07a32 --- /dev/null +++ b/hugo/content/es/account_management/org_settings/cross_app_access.md @@ -0,0 +1,214 @@ +--- +algolia: + tags: + - cross-app access + - XAA + - Okta + - AI agent + - MCP + - ID-JAG +description: Configure Okta Cross-App Access para que los AI Agents puedan llamar + a la Datadog API en nombre de los usuarios autorizados en Okta. +further_reading: +- link: /mcp_server/setup/ + tag: Documentación + text: Configure el Datadog MCP Server +- link: /account_management/org_settings/mobile_third_party_access/ + tag: Documentación + text: Acceso móvil y de terceros +- link: /account_management/saml/ + tag: Documentación + text: Configure el inicio de sesión único SAML +title: Acceso entre aplicaciones +--- +{{< callout url="#" btn_hidden="true" header="false">}} + El acceso entre aplicaciones está en versión preliminar. Okta controla el acceso a la versión preliminar y lo habilita para su inquilino, y las capacidades de Okta de las que depende esta configuración aún no están disponibles de forma general. Cualquier organización de Datadog puede habilitar el acceso entre aplicaciones en el lado de Datadog hoy mismo. +{{< /callout >}} + +## Resumen {#overview} + +El acceso entre aplicaciones (XAA) permite que los AI Agents llamen a la Datadog API en nombre de los usuarios que su organización ya autorizó en Okta. Sin esto, cada usuario autoriza al Agent de forma individual a través de una pantalla de consentimiento del navegador. Con esto, su administrador de Okta otorga ese acceso una vez, de forma centralizada, y los usuarios omiten el paso de consentimiento por usuario. + +Okta emite al Agent un token de corta duración llamado ID-JAG (Identity Assertion JWT Authorization Grant). El Agent presenta este token a Datadog, y Datadog lo intercambia por un token de acceso propiedad del usuario que inició la llamada. Debido a que Okta genera el token, sus administradores otorgan y revocan el acceso de Datadog para los AI Agents desde Okta. + +En la versión preliminar, el acceso entre aplicaciones admite a Okta como el único proveedor de identidad y a Claude como el único Agent. + +## Valores que intercambia {#values-you-exchange} + +La configuración mueve valores en ambas direcciones entre Datadog y Okta. Dos de ellos son URL de emisor que nombran diferentes sistemas, así que confirme que ingresa cada uno en el lugar correcto. + +| Valor | Dirección | Dónde ingresarlo | +| ----------------------------------- | --------------- | ----------------------------------------------------------------------------------------- | +| UUID de la organización de Datadog | Datadog a Okta | Aplicación de Datadog en Okta: {{< ui >}}Resource Server{{< /ui >}} pestaña > {{< ui >}}Audience/tenant ID{{< /ui >}} | +| ID de cliente del Agent | Datadog a Okta | Okta AI Agent: {{< ui >}}Resource Connection{{< /ui >}} > {{< ui >}}Client ID at resource{{< /ui >}} | +| URL de recurso y URL de emisor de Datadog | Datadog a Okta | Aplicación de Datadog en Okta: {{< ui >}}Resource Server{{< /ui >}} pestaña > {{< ui >}}Resource URL{{< /ui >}} y {{< ui >}}Issuer URL{{< /ui >}} | +| URL del emisor del inquilino de Okta | Okta a Datadog | Datadog: {{< ui >}}Organization Settings > Cross-App Access{{< /ui >}}, {{< ui >}}Issuer URL{{< /ui >}} | + +## Requisitos previos {#prerequisites} + +- Su organización utiliza Okta para el inicio de sesión único SAML en Datadog. El acceso entre aplicaciones resuelve usuarios a través de su conexión SAML existente, por lo que no funciona sin una. Consulte [Configurar el inicio de sesión único SAML](/account_management/saml/). +- Cada usuario que utiliza Claude existe en su organización de Datadog y está asignado tanto a la aplicación Claude como a la aplicación Datadog en Okta. +- Tiene el permiso `org_management` en Datadog. Para configurar el acceso entre aplicaciones a través de la API en lugar de la interfaz de usuario, también necesita un [Token de acceso personal](/account_management/personal-access-tokens/) (PAT), que se utiliza como `DD_TOKEN` en los ejemplos. +- Su inquilino de Okta tiene habilitadas las funciones de acceso anticipado {{< ui >}}AI Agent Identity Assertion{{< /ui >}} y {{< ui >}}Agent to Agent Connections{{< /ui >}}, y usted tiene acceso de Superadministrador de Okta. + +## Configurar el acceso entre aplicaciones en Datadog {#configure-cross-app-access-in-datadog} + +Complete los pasos de Datadog antes que los pasos de Okta. Datadog rechaza los tokens de las organizaciones que no han habilitado el acceso entre aplicaciones, por lo que configurar Okta primero producirá errores hasta que termine aquí. + +Navegue a [{{< ui >}}Organization Settings > Cross-App Access{{< /ui >}}](https://app.datadoghq.com/organization-settings/cross-app-access). + +{{< img src="account_management/cross_app_access/cross-app-access-settings.png" alt="Página de acceso entre aplicaciones en la Configuración de la organización, que muestra el estado de habilitación, el campo URL del emisor, el UUID de la organización y la tabla de ID de cliente registrados" style="width:100%;">}} + +### Habilitar el acceso entre aplicaciones {#enable-cross-app-access} + +Haga clic en {{< ui >}}Enable{{< /ui >}}. Esto se aplica a toda su organización. Haga clic en {{< ui >}}Disable{{< /ui >}} para desactivar el Acceso entre aplicaciones más tarde. + +### Establezca su URL de emisor de Okta {#set-your-okta-issuer-url} + +En el campo {{< ui >}}Issuer URL{{< /ui >}}, ingrese la URL de emisor de su propio inquilino de Okta y luego haga clic en {{< ui >}}Save{{< /ui >}}. Datadog deriva la ubicación de las claves de firma de token a partir de este valor, por lo que debe ser exacto. + +La URL de emisor debe cumplir con todo lo siguiente, o Datadog la rechazará: + +- Use `https`. +- Use un subdominio de `.okta.com`, `.oktapreview.com` o `.okta-emea.com`. Datadog rechaza el dominio raíz, por lo que `example.okta.com` funciona y `okta.com` no funciona. + +Haga clic en {{< ui >}}Remove{{< /ui >}} para quitar el emisor. Datadog deja de aceptar tokens después de que usted lo elimine. + +### Copie el UUID de su organización {#copy-your-organization-uuid} + +Copie el valor en el campo {{< ui >}}Org UUID{{< /ui >}}. Okta envía este valor como la reclamación `aud_tenant`, la cual le indica a Datadog a qué organización apunta un token cuando varias organizaciones comparten un mismo inquilino de Okta. No es lo mismo que el ID de compañía que Okta solicita en otros lugares. + +### Copie el ID de cliente del Agent {#copy-the-agent-client-id} + +La tabla {{< ui >}}Registered client IDs{{< /ui >}} enumera todos los Agents que Datadog admite para el acceso entre aplicaciones y el ID de cliente OAuth que utiliza cada uno. Copie el ID de cliente para el Agent que está configurando. Usted lo ingresará en Okta como {{< ui >}}Client ID at resource{{< /ui >}}. + +Datadog agrega Agents a esta tabla a medida que los admite, así que consulte la tabla en lugar de reutilizar un ID de cliente de otra fuente. + +Haga clic en {{< ui >}}Manage app{{< /ui >}} en una fila para abrir la configuración del contexto para ese Agent. Consulte [ Control del contexto en Datadog](#control-scopes-in-datadog). + +{{% collapse-content title="Opcional: configurar con la API" level="h3" expanded=false %}} + +Utilice estas llamadas para programar la configuración. Hacen lo mismo que el botón {{< ui >}}Enable{{< /ui >}} y el campo {{< ui >}}Issuer URL{{< /ui >}}. Ambos requieren un PAT con el permiso `org_management`. + +Habilite el acceso entre aplicaciones configurando la configuración de la organización `mcp_cross_app_access_enabled` en `true`. Para desactivarlo más tarde, envíe la misma solicitud con `"value": false`. + +```shell +curl -X PATCH "{{< region-param key="dd_api" >}}/api/v2/org_configs/mcp_cross_app_access_enabled" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer ${DD_TOKEN}" \ + -d '{ + "data": { + "type": "org_configs", + "attributes": { + "value": true + } + } + }' +``` + +Configure la URL del emisor de Okta. Se aplican las mismas reglas de validación, y un valor que las infringe devuelve `400`. Enviar una cadena vacía quita el emisor. + +```shell +curl -X PUT "{{< region-param key="dd_api" >}}/api/v2/login/org_configs/mcp_cross_app_access_issuer_url" \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer ${DD_TOKEN}" \ + -d '{ + "data": { + "type": "org_config", + "attributes": { + "issuer_url": "https://.okta.com" + } + } + }' +``` + +Para leer el UUID de su organización desde la API, llame a [{{< region-param key="dd_api" >}}/api/v2/current_user](https://app.datadoghq.com/api/v2/current_user) con una sesión activa en la organización de destino. El UUID es el `id` de la entrada `orgs` en la matriz `included`. + +{{% /collapse-content %}} + +## Finalice la configuración en Okta {#finish-the-setup-in-okta} + +Complete la configuración en la Admin Console de Okta como Superadministrador. Esta sección enumera los valores que Datadog espera y los campos de Okta a los que pertenecen. Consulte [la documentación de Cross-App Access de Okta](https://help.okta.com/oie/en-us/content/topics/apps/apps-cross-app-access.htm) para obtener más detalles. + +### Configure la aplicación de Datadog como un servidor de recursos {#configure-the-datadog-application-as-a-resource-server} + +En su aplicación de Datadog, abra la pestaña {{< ui >}}Resource Server{{< /ui >}} y habilite {{< ui >}}Cross-app access (XAA){{< /ui >}}. Configure los siguientes campos. + +{{< site-region region="us,us3,us5,eu,ap1,ap2,uk1" >}} +

Los valores a continuación coinciden con su sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}). Para ver los valores de otro sitio, utilice el selector {{< ui >}}Datadog Site{{< /ui >}} en el lado derecho de esta página.

+ + + + + + + +
Campo de OktaValor
{{< ui >}}Resource URL{{< /ui >}}{{< region-param key="mcp_xaa_resource_url" code="true" >}}
{{< ui >}}Issuer URL{{< /ui >}}{{< region-param key="mcp_xaa_issuer_url" code="true" >}}
{{< ui >}}Audience/tenant ID{{< /ui >}}UUID de su organización de Datadog
+{{< /site-region >}} + +La URL del emisor identifica al servidor de autorización de Datadog, no al punto de conexión del token. Okta lo escribe en la reclamación `aud` de los tokens que emite, y Datadog acepta un token solo cuando esa reclamación coincide. + +**Nota**: Cambiar la URL del emisor más adelante requiere eliminar y volver a crear la conexión de recursos descrita en [Conectar Claude a la aplicación de Datadog](#connect-claude-to-the-datadog-application). + +### Registrar a Claude como un AI Agent {#register-claude-as-an-ai-agent} + +Cree una entrada de AI Agent para Claude en Okta y luego intercambie claves con Anthropic. Anthropic firma las solicitudes que recibe Okta, por lo que Okta necesita la clave pública de Anthropic antes de emitir cualquier token. + +1. Crear la entrada del AI Agent para Claude. +2. Asignar propietarios al AI Agent. Okta requiere un propietario antes de que pueda activarlo. +3. Enviar el ID del AI Agent que genera Okta a Anthropic. +4. Agregar la clave pública que devuelve Anthropic a la entrada del AI Agent, en la pestaña {{< ui >}}Credentials{{< /ui >}}. + +Hasta que la clave pública esté en su lugar, el intercambio de tokens fallará aunque todos los demás valores sean correctos. Este intercambio es manual, así que inícielo pronto. + +### Conecte Claude a la aplicación Datadog {#connect-claude-to-the-datadog-application} + +En el AI Agent de Claude, agregue la aplicación SAML de Claude como un llamador delegado, luego conecte el AI Agent a su aplicación Datadog. + +1. En la pestaña {{< ui >}}Delegations{{< /ui >}}, agregue la aplicación SAML de Claude como llamador. +2. En la pestaña {{< ui >}}Resource connections{{< /ui >}}, agregue una conexión de recurso. Seleccione {{< ui >}}Application{{< /ui >}} como el tipo de recurso, luego seleccione su aplicación Datadog. +3. Establezca los siguientes campos. + + | Campo de Okta | Valor | + | ------------------------- | ---------------------------------------------------------------------------------------------------- | + | {{< ui >}}Client ID at resource{{< /ui >}} | El ID de cliente de Claude que copió de [{{< ui >}}Registered client IDs{{< /ui >}}](#copy-the-agent-client-id) | + | {{< ui >}}Scope Condition{{< /ui >}} | {{< ui >}}Allow all{{< /ui >}}, el único valor admitido. Consulte [Controlar contextos en Datadog](#control-scopes-in-datadog) | + +4. Active el AI Agent desde el menú {{< ui >}}Actions{{< /ui >}}. + +## Controlar contextos en Datadog {#control-scopes-in-datadog} + +{{< ui >}}Allow all{{< /ui >}} es el único {{< ui >}}Scope Condition{{< /ui >}} admitido para el acceso entre aplicaciones. Establézcalo en Okta y luego restrinja a qué accede Claude desde Datadog. + +Okta no filtra los contextos. Con {{< ui >}}Allow all{{< /ui >}}, Okta copia todo lo que Claude solicita en el token, lo que convierte a Datadog en el punto de cumplimiento. + +
No ingrese una lista de contextos en Okta. Okta rechaza cualquier solicitud de token que contenga un contexto fuera de la lista, por lo que la integración falla con un error en lugar de recurrir a un acceso más limitado.
+ +Para establecer los contextos que Claude tiene permitidos: + +1. Navegue a [{{< ui >}}Organization Settings > Mobile and Third-Party Access{{< /ui >}}](https://app.datadoghq.com/organization-settings/mobile-third-party-access). También puede hacer clic en {{< ui >}}Manage app{{< /ui >}} junto a Claude en la tabla {{< ui >}}Registered client IDs{{< /ui >}} en la página de Acceso entre aplicaciones. +2. Seleccione la aplicación Claude y, a continuación, seleccione la pestaña {{< ui >}}Scopes{{< /ui >}}. +3. Utilice la casilla de verificación {{< ui >}}Allowed{{< /ui >}} para cada contexto a fin de controlar a qué accede Claude. +4. Haga clic en {{< ui >}}Enable{{< /ui >}} para guardar. + +Agregar o eliminar un contexto afecta a todos los usuarios de su organización, y eliminar un contexto revoca las autorizaciones existentes que dependen de él. Consulte [Administración de contextos de aplicación](/account_management/org_settings/mobile_third_party_access/#application-scope-management). + +Un contexto que no está permitido en Datadog nunca se concede, independientemente de lo que solicite el token. + +## Agregue Datadog como conector en Claude {#add-datadog-as-a-connector-in-claude} + +1. En Claude, haga clic en el icono {{< ui >}}+{{< /ui >}} en la parte inferior de cualquier prompt y, a continuación, haga clic en {{< ui >}}Add Connector{{< /ui >}}. +2. Busque **Datadog** en el directorio y habilite el conector. +3. Complete el flujo de inicio de sesión cuando se le solicite. + +Utilice el conector de Datadog del directorio, no un conector personalizado. + +## Verifique la configuración {#verify-the-configuration} + +Inicie sesión en Claude como un usuario asignado a ambas aplicaciones de Okta y, a continuación, ejecute una solicitud que llame a Datadog. Una llamada exitosa confirma la ruta completa: Okta emite el token, Datadog lo acepta y Datadog resuelve al usuario. + +Si un usuario inició sesión antes de que usted habilitara el Acceso entre aplicaciones, pídale que cierre la sesión de Claude y vuelva a iniciarla a través de Okta. Las sesiones establecidas anteriormente carecen del token de identidad que necesita el AI Agent. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/es/account_management/teams/_index.md b/hugo/content/es/account_management/teams/_index.md index ad95b618ed2..66ba7f436b3 100644 --- a/hugo/content/es/account_management/teams/_index.md +++ b/hugo/content/es/account_management/teams/_index.md @@ -1,177 +1,181 @@ --- -description: Organiza los activos del equipo, filtra las experiencias de Datadog y - gestiona la membresía del equipo con identificadores de equipo, notificaciones y - asociaciones de recursos. +description: Organice los recursos del equipo, filtre las experiencias de Datadog + y administre la membresía del equipo con identificadores de equipo, notificaciones + y asociaciones de recursos. further_reading: - link: https://www.datadoghq.com/blog/datadog-teams-github-integration tag: Blog - text: Mantén la propiedad del servicio actualizada con la integración de GitHub - de los Equipos de Datadog -title: Equipos + text: Mantenga actualizada la propiedad del servicio con la integración de GitHub + de Datadog Teams +title: Teams --- -## Resumen {#overview} -Los Equipos de Datadog permiten a grupos de usuarios organizar sus activos de equipo dentro de Datadog y filtrar automáticamente su experiencia en Datadog para priorizar estos activos. +## Descripción general {#overview} +Datadog Teams permite a los grupos de usuarios organizar sus recursos de equipo dentro de Datadog y filtrar automáticamente su experiencia en todo Datadog para priorizar estos recursos. -Utiliza Equipos para vincular recursos como tableros, servicios, seguimientos e incidentes a un grupo de usuarios. También puedes agregar enlaces específicos del equipo a canales de Slack, tableros de Jira, repositorios de GitHub y más. +Utilice Teams para vincular recursos como paneles,servicios, monitores e incidentes a un grupo de usuarios. También puede agregar enlaces específicos del equipo a canales de Slack, tableros de Jira, repositorios de GitHub y más. -La membresía del equipo es flexible. Los usuarios pueden unirse a equipos, ser añadidos por otros miembros o ser añadidos por un administrador. Los usuarios pueden pertenecer a múltiples equipos. +La membresía del equipo es flexible. Los usuarios pueden unirse a equipos, ser agregados por otros miembros o ser agregados por un administrador. Los usuarios pueden pertenecer a varios equipos. ## Configuración {#setup} ### Navegación {#navigation} -Accede a la página del directorio del equipo desde [Configuraciones de la Organización][1] o navegando a [**Equipos**][2]. La [página del directorio del equipo][1] lista todos los equipos dentro de tu organización. +Acceda a la página del directorio de equipos desde [Ajustes de la organización][1] o navegando a [**Teams**][2]. La [página del directorio de equipos][1] enumera todos los equipos dentro de su organización. ### Crear equipo {#create-team} -1. En la [página del directorio del equipo][1], haz clic en {{< ui >}}New Team{{< /ui >}} en la esquina superior derecha. -1. Elige un {{< ui >}}Team Name{{< /ui >}}. -1. El {{< ui >}}Handle{{< /ui >}} se completa según el nombre de tu equipo. -1. Utiliza el menú desplegable para seleccionar miembros del equipo y gerentes del equipo. -1. Proporciona un {{< ui >}}Description{{< /ui >}} opcional. -1. Haz clic en {{< ui >}}Create{{< /ui >}}. +1. En la [página del directorio de equipos][1], haga clic en {{< ui >}}New Team{{< /ui >}} en la parte superior derecha. +1. Elija un {{< ui >}}Team Name{{< /ui >}}. +1. El {{< ui >}}Handle{{< /ui >}} se completa según el nombre de su equipo. +1. Utilice el menú desplegable para seleccionar a los miembros y gerentes del equipo. +1. Proporcione un {{< ui >}}Description{{< /ui >}} opcional. +1. Haga clic en {{< ui >}}Create{{< /ui >}}. **Notas**: - Los caracteres permitidos para los nombres de equipo son `a-z`, `A-Z`, `0-9` y `._-:/`. Reemplace los espacios con guiones bajos. - Los caracteres permitidos para los identificadores de equipo son `a-z`, `0-9` y `._-:/`. El último carácter no puede ser un guion bajo. -### Modifica el equipo {#modify-team} +### Modificar equipo {#modify-team} -1. En la [página del directorio de equipos][1], haz clic en el equipo que deseas modificar. Aparece la [página de detalles del equipo][3]. -1. Haz clic en el engranaje {{< ui >}}Settings{{< /ui >}} en la parte superior de la pantalla. Aparece una ventana emergente. -1. Selecciona el elemento que deseas modificar. -1. Realiza tus cambios, luego haz clic en {{< ui >}}Save{{< /ui >}}. +1. En la [página del directorio de equipos][1], haga clic en el equipo que desea modificar. Aparece la [página de detalles del equipo][3]. +1. Haga clic en el engranaje {{< ui >}}Settings{{< /ui >}} en la parte superior de la pantalla. Aparece una ventana emergente. +1. Seleccione el elemento que desea modificar. +1. Realice sus cambios y luego haga clic en {{< ui >}}Save{{< /ui >}}. -### Elige la fuente de aprovisionamiento {#choose-provisioning-source} +### Elija la fuente de aprovisionamiento {#choose-provisioning-source} -Elige entre tres opciones para determinar cómo los administradores y gerentes de equipo pueden actualizar la membresía del equipo: +Elija entre tres opciones para determinar cómo los administradores y los gerentes de equipo pueden actualizar la membresía del equipo: UI y API -: Actualice la membresía solo a través de acciones de UI y llamadas a la API +: Actualizar la membresía solo a través de acciones de la UI y llamadas a la API SAML -: Utilice un modelo *SAML estricto* para que los datos del proveedor de identidad determinen la membresía del equipo. +: Utilice un modelo *SAML estricto* para que los datos del proveedor de identidad determinen la membresía del equipo Todas las fuentes -: Utiliza SAML como punto de partida y permite sobrescrituras a través de la interfaz de usuario y la API +: Utilice SAML como punto de partida y permita anulaciones a través de la interfaz de usuario y la API -1. En la [página del directorio de equipos][1], haz clic en {{< ui >}}Teams Settings{{< /ui >}}. -1. Selecciona una de las opciones bajo {{< ui >}}Team Provisioning Sources{{< /ui >}}. +1. En la [página del directorio de equipos][1], haga clic en {{< ui >}}Teams Settings{{< /ui >}}. +1. Seleccione una de las opciones en {{< ui >}}Team Provisioning Sources{{< /ui >}}. -Si tienes equipos con miembros existentes, elegir la opción estricta de SAML sobrescribe tus configuraciones y elimina a los miembros de esos equipos. Elegir la opción Todas las fuentes preserva las membresías existentes. Para gestionar equipos y la membresía de equipos utilizando atributos SAML, consulta [Mapear atributos SAML a Equipos][4]. +Si tiene equipos con miembros existentes, elegir la opción SAML estricto anula su configuración y elimina a los miembros de esos equipos. Seleccionar la opción Todas las fuentes conserva las membresías existentes. Para administrar equipos y la membresía mediante atributos SAML, consulte [Asignar atributos SAML a Teams][4]. -## Identificador de equipo {#team-handle} +## Jerarquías de equipos{#team-hierarchies} -Un identificador de equipo vincula equipos a recursos de Datadog. Los identificadores de equipo aparecen en las barras de búsqueda y facetas en el formato `team:` o `teams:`. +Anide equipos dentro de otros (subequipos) para reflejar la estructura de su organización y visualice el resultado como un mapa de Teams. Para definir relaciones jerárquicas entre equipos con GitHub Teams, la Teams API, Terraform o la interfaz de usuario de Datadog, consulte [Jerarquías de Teams][39]. + +## Identificador de equipo{#team-handle} + +Un identificador de equipo vincula los equipos con los recursos de Datadog. Los identificadores de equipos aparecen en las barras de búsqueda y facetas en el formato `team:` o `teams:`. Para encontrar un identificador de equipo: -1. Haz clic en el nombre del equipo en la página del directorio de equipos. Aparece la página de detalles del equipo. +1. Haga clic en el nombre del equipo en la página del directorio de equipos. Aparece la página de detalles del equipo. 1. El identificador de equipo aparece a la derecha del nombre, en la parte superior de la página. -Para asociar un recurso con un equipo definido, debe existir un equipo en Datadog con un identificador de equipo coincidente. Cuando haces clic en un recurso asociado con un equipo definido, aparece una ventana pequeña con el identificador de equipo y información adicional. Los equipos definidos proporcionan funcionalidad adicional, como el filtro de equipo a continuación. +Para asociar un recurso con un equipo definido, debe existir un equipo en Datadog con un identificador de equipo coincidente. Cuando hace clic en un recurso asociado con un equipo definido, aparece una pequeña ventana con el identificador de equipo e información adicional. Los equipos definidos proporcionan funcionalidad adicional, como el filtro de equipos a continuación. -Los identificadores de equipo que no están asociados con un equipo definido en Datadog se comportan de manera similar a las etiquetas. Convierte cualquier identificador de equipo indefinido en equipos definidos para aprovechar las características de Teams. +Los identificadores de equipo que no están asociados con un equipo definido en Datadog se comportan de manera similar a las etiquetas. Convierta cualquier identificador de equipo no definido en equipos definidos para aprovechar las funciones de Teams. -### Asocia recursos con identificadores de equipo {#associate-resources-with-team-handles} +### Asociar recursos con identificadores de equipos {#associate-resources-with-team-handles} -Datadog admite asociar los siguientes recursos con los identificadores de equipo: +Datadog admite la asociación de los siguientes recursos con identificadores de equipos: -- [Dashboards][5] +- [Tableros][5] - [Incidentes][6] -- [Seguimientos][7] +- [Monitores][7] - [Resource Catalog][8] -- [Software Catalog][9] -- [SLO][10] -- Pruebas Synthetic, Variables Globales, Ubicaciones Privadas +- [Catalog][9] +- [Service Level Objectives][10] +- Prueba Synthetic, Global Variables, Private Locations ### Enviar notificaciones a un canal de comunicación específico {#send-notifications-to-a-specific-communication-channel} -Agrega un canal de notificación a tu equipo para dirigir alertas a canales de comunicación como Slack o Microsoft Teams. Las alertas de seguimiento dirigidas a `@team-` se redirigen al canal seleccionado. +Agregue un canal de notificación a su equipo para dirigir las alertas a canales de comunicación como Slack o Microsoft Teams. Las alertas de monitores dirigidas a `@team-` se redirigen al canal seleccionado. -1. En la [página del directorio de equipos][1], haz clic en el equipo que deseas modificar. -1. Haz clic en el {{< ui >}}Settings{{< /ui >}} engranaje en la parte superior de la pantalla. Aparece una ventana emergente. -1. Selecciona {{< ui >}}Notifications{{< /ui >}}. -1. Agrega un canal, luego haz clic en {{< ui >}}Save{{< /ui >}}. +1. En la [página del directorio de equipos][1], haga clic en el equipo que desea modificar. +1. Haga clic en el engranaje {{< ui >}}Settings{{< /ui >}} en la parte superior de la pantalla. Aparece una ventana emergente. +1. Seleccione {{< ui >}}Notifications{{< /ui >}}. +1. Agregue un canal y luego haga clic en {{< ui >}}Save{{< /ui >}}. -## Filtro de equipo {#team-filter} +## Filtro de equipos {#team-filter} -El filtro de equipo adapta tu experiencia en Datadog al mostrarte contenido asociado con tus equipos. La lista {{< ui >}}My Teams{{< /ui >}} incluye equipos de los que eres miembro y equipos que seleccionaste como favoritos. +El filtro de equipos personaliza su experiencia en Datadog al mostrarle contenido asociado con sus equipos. La lista {{< ui >}}My Teams{{< /ui >}} incluye los equipos de los que usted es miembro y los equipos que seleccionó como favoritos. -{{< img src="/account_management/teams/team-filter.png" alt="Página de lista de seguimientos con un cuadro rojo alrededor del filtro de equipo. Dos de tres Mis Equipos seleccionados.">}} +{{< img src="/account_management/teams/team-filter.png" alt="Página de lista de monitores con un recuadro rojo alrededor del filtro de equipos. Dos de tres My Teams seleccionados.">}} -Cuando habilitas el filtro de equipo, solo ves los recursos asociados con tus equipos o con los servicios que pertenecen a tus equipos. El estado del filtro de equipo es global y persistente, por lo que Datadog aplica tu contexto de equipo mientras navegas por diferentes productos. +Cuando habilita el filtro de equipos, solo ve los recursos asociados con sus equipos o con los servicios que pertenecen a sus equipos. El estado del filtro de equipos es global y persistente, por lo que Datadog aplica su contexto de equipo a medida que navega por diferentes productos. -El filtro de equipo funciona añadiendo términos de búsqueda basados en el equipo a la consulta de búsqueda. Cuando habilitas el filtro de equipo, puedes ver los términos de búsqueda basados en el equipo que se añaden en la barra de búsqueda. +El filtro de equipos funciona añadiendo términos de búsqueda basados en el equipo a la consulta de búsqueda. Cuando habilita el filtro de equipos, puede ver los términos de búsqueda basados en el equipo que éste añade en la barra de búsqueda. ### Equipos favoritos {#favorite-teams} -Puedes estar interesado en los recursos de un equipo en particular sin ser miembro de ese equipo. Agregar un equipo a tus equipos favoritos te permite obtener vistas filtradas de los recursos de ese equipo sin unirte al equipo. +Es posible que le interesen los recursos de un equipo en particular sin ser miembro de ese equipo. Añadir un equipo a sus Favoritos le permite obtener vistas filtradas de los recursos de ese equipo sin unirse al mismo. -Tus equipos favoritos aparecen junto a los equipos a los que perteneces en la parte superior de la página del directorio de equipos y en el filtro de equipo. +Sus equipos favoritos aparecen junto a los equipos a los que usted pertenece en la parte superior de la página de directorio de equipos y en el filtro de equipos. -#### Agregar o quitar equipos favoritos {#add-or-remove-favorite-teams} +#### Agregar o eliminar equipos favoritos {#add-or-remove-favorite-teams} -Puedes agregar o quitar un equipo de tus favoritos desde la página del directorio de equipos o desde el filtro de equipo. +Puede añadir o eliminar un equipo de sus Favoritos desde la [página de directorio de equipos] o desde el filtro de equipos. -Desde la [página del directorio de equipos][1]: -1. Haz clic en el equipo que deseas agregar como favorito. Aparece la [página de detalles del equipo][3]. -1. Haz clic en {{< ui >}}Add Favorite{{< /ui >}} o {{< ui >}}Remove Favorite{{< /ui >}} en la esquina superior derecha. +Desde la [página de directorio de equipos][1]: +1. Haga clic en el equipo que desea añadir como Favorito. Aparece la [página de detalles del equipo][3]. +1. Haga clic en {{< ui >}}Add Favorite{{< /ui >}} o {{< ui >}}Remove Favorite{{< /ui >}} en la parte superior derecha. -Alternativamente, también desde la página del directorio de equipos: -1. Pasa el cursor sobre el equipo que deseas agregar o quitar. Los íconos en línea aparecen a la derecha del nombre del equipo. -1. Haz clic en el ícono de estrella ({{< ui >}}Add to Favorites{{< /ui >}} o {{< ui >}}Remove from Favorites{{< /ui >}}). +Alternativamente, también desde la [página de directorio de equipos]: +1. Pase el cursor sobre el equipo que desea añadir o eliminar. Aparecen iconos en línea a la derecha del nombre del equipo. +1. Haga clic en el icono de estrella ({{< ui >}}Add to Favorites{{< /ui >}} o {{< ui >}}Remove from Favorites{{< /ui >}}). -Desde el filtro de equipo: -1. Si el filtro está colapsado, haz clic en {{< ui >}}My Teams{{< /ui >}} para expandirlo. -1. Haz clic en {{< ui >}}Add Favorites{{< /ui >}}. Aparece un cuadro de búsqueda y una lista de equipos. -1. Para reducir la lista de equipos, comienza a escribir el nombre de un equipo en el cuadro de búsqueda. -1. Haz clic en la estrella junto al equipo deseado para agregarlo o quitarlo de tus favoritos. +Desde el filtro de equipos: +1. Si el filtro de equipos está contraído, haga clic en {{< ui >}}My Teams{{< /ui >}} para expandirlo. +1. Haga clic en {{< ui >}}Add Favorites{{< /ui >}}. Aparecen un cuadro de búsqueda y una lista de equipos. +1. Para reducir la lista de equipos, comience a escribir el nombre de un equipo en el cuadro de búsqueda. +1. Haga clic en la estrella junto al equipo deseado para agregarlo o quitarlo de sus equipos favoritos. -### Productos soportados {#supported-products} +### Productos compatibles {#supported-products} -La siguiente tabla describe los productos en los que puedes usar el filtro de equipos: +La siguiente tabla describe los productos en los que puede usar el filtro de equipos: -| Página de lista de productos | Base de filtro | +| Product List Page | Filter basis | |--------------------------------|------------------------------------------------------------------------------------| -| [APM Error Tracking][15] | Service owned by teams (determined by ownership inside the [Software Catalog][12]) | +| [APM Error Tracking][15] | Servicio propiedad de los equipos (determinado por la propiedad dentro del [Catálogo][12]) | | [Apps][21] | Identificador de equipo | -| [Case Management projects][22] | Identificador de equipo | -| [Connections][23] | Identificador de equipo | -| [Connection Groups][24] | Identificador de equipo | -| [Cross Org Connections][25] | Identificador de equipo | -| [Datastores][26] | Identificador de equipo | -| [Data Streams Monitoring][18] | Identificador de equipo | -| [Dashboards][11] | Identificador de equipo | -| [Incidentes][13] | Identificador de equipo | -| [Integrations][27] | Identificador de equipo | -| [Logs Error Tracking][16] | Servicio propiedad de equipos (determinado por la propiedad dentro del [Software Catalog][12]) | -| [Logs Pipelines][28] | Identificador de equipo | -| [Monitors][14] | Identificador de equipo | -| [Notebooks][20] | Identificador de equipo | -| [Observability Pipelines][29] | Identificador de equipo | -| [On-Call][30] | Servicio propiedad de equipos (determinado por la propiedad dentro del [Software Catalog][12]) | -| [Powerpacks][32] | Identificador de equipo | -| [Private Action Runner][31] | Identificador de equipo | -| [Tablas de referencia][33] | Identificador de equipo | -| [Resource Catalog][8] | Identificador de equipo | -| [RUM apps][34] | Identificador de equipo | -| [Security rules][35] | Identificador de equipo | -| [Security suppressions][36] | Identificador de equipo | -| [Service Level Objectives][17] | Identificador de equipo | -| [Sheets][37] | Identificador de equipo | -| [Software Catalog][12] | Identificador de equipo | -| [Synthetic Tests][19] | Identificador de equipo | -| [Flujos de trabajo][38] | Identificador de equipo | +| [Work Management projects][22] | Identificador de equipo | +| [Conexiones][23] | Identificador del equipo | +| [Grupos de conexión][24] | Identificador del equipo | +| [Conexiones entre organizaciones][25] | Identificador del equipo | +| [Datastores][26] | Identificador del equipo | +| [Data Streams Monitoring][18] | Identificador del equipo | +| [Dashboards][11] | Identificador del equipo | +| [Incidents][13] | Identificador del equipo | +| [Integrations][27] | Identificador del equipo | +| [Logs Error Tracking][16] | Servicio propiedad de los equipos (determinado por la propiedad dentro del [Catálogo][12]) | +| [Logs Pipelines][28] | Identificador del equipo | +| [Monitors][14] | Identificador del equipo | +| [Notebooks][20] | Identificador del equipo | +| [Observability Pipelines][29] | Identificador del equipo | +| [On-Call][30] | Servicio propiedad de los equipos (determinado por la propiedad dentro del [Catálogo][12]) | +| [Powerpacks][32] | Identificador del equipo | +| [Private Action Runner][31] | Identificador del equipo | +| [Reference tables][33] | Identificador del equipo | +| [Resource Catalog][8] | Identificador del equipo | +| [RUM apps][34] | Identificador del equipo | +| [Security rules][35] | Identificador del equipo | +| [Security suppressions][36] | Identificador del equipo | +| [Service Level Objectives][17] | Identificador del equipo | +| [Sheets][37] | Identificador del equipo | +| [Catalog][12] | Identificador del equipo | +| [Pruebas Synthetic][19] | Identificador del equipo | +| [Workflows][38] | Identificador del equipo | ## Permisos {#permissions} -Cualquier usuario en un rol con el permiso Teams Manage puede crear equipos, renombrar equipos, eliminar equipos y cambiar los identificadores de equipo. Los usuarios con `user_access_manage` pueden agregar, eliminar y promover miembros y gerentes de equipo. +Cualquier usuario con un rol que tenga el permiso de administrar Teams puede crear, renombrar y eliminar equipos, además de cambiar los identificadores. Los usuarios con `user_access_manage` pueden agregar, eliminar y promover a miembros y gerentes de equipos. -## Manage teams {#manage-teams} +## Administrar equipos{#manage-teams} -Para personalizar tu equipo, consulta [Team Management][3]. +Para personalizar su equipo, consulte [Administración de equipos][3]. [1]: https://app.datadoghq.com/organization-settings/teams @@ -182,7 +186,7 @@ Para personalizar tu equipo, consulta [Team Management][3]. [6]: /es/incident_response/incident_management/ [7]: /es/monitors/configuration/?tab=thresholdalert#add-metadata [8]: https://app.datadoghq.com/infrastructure/catalog -[9]: /es/tracing/software_catalog/adding_metadata/#add-metadata-from-the-datadog-ui +[9]: /es/internal_developer_portal/catalog/entity_model/ [10]: /es/service_level_objectives/#slo-tags [11]: https://app.datadoghq.com/dashboard/lists [12]: https://app.datadoghq.com/services @@ -195,7 +199,7 @@ Para personalizar tu equipo, consulta [Team Management][3]. [19]: https://app.datadoghq.com/synthetics [20]: https://app.datadoghq.com/notebook/list/ [21]: https://app.datadoghq.com/app-builder/apps/list -[22]: https://app.datadoghq.com/cases +[22]: https://app.datadoghq.com/work [23]: https://app.datadoghq.com/actions/connections [24]: https://app.datadoghq.com/actions/connections?sort=-updated_at&tab=groups [25]: https://app.datadoghq.com/organization-settings/cross-org-visibility @@ -211,4 +215,5 @@ Para personalizar tu equipo, consulta [Team Management][3]. [35]: https://app.datadoghq.com/security/configuration/notification-rules [36]: https://app.datadoghq.com/security/configuration/suppressions [37]: https://app.datadoghq.com/sheets -[38]: https://app.datadoghq.com/workflow \ No newline at end of file +[38]: https://app.datadoghq.com/workflow +[39]: /es/account_management/teams/manage/#team-hierarchies \ No newline at end of file diff --git a/hugo/content/es/actions/app_builder/components/_index.md b/hugo/content/es/actions/app_builder/components/_index.md index c12944d19c1..6746f7006ee 100644 --- a/hugo/content/es/actions/app_builder/components/_index.md +++ b/hugo/content/es/actions/app_builder/components/_index.md @@ -1,137 +1,144 @@ --- aliases: - /es/service_management/app_builder/components -description: Referencia completa de los componentes de interfaz de usuario de App - Builder, incluyendo botones, formularios, tablas, gráficos y elementos interactivos. +description: Referencia integral para los componentes de la interfaz de usuario de + App Builder, incluidos botones, formularios, tablas, gráficos y elementos interactivos. disable_toc: true further_reading: -- link: /service_management/app_builder/tables/ +- link: /actions/app_builder/components/tables/ tag: Documentación text: Tablas -- link: /service_management/app_builder/build/ +- link: /actions/app_builder/build/ tag: Documentación text: Crear aplicaciones -- link: /service_management/app_builder/expressions/ +- link: /actions/app_builder/expressions/ tag: Documentación text: Expresiones de JavaScript - link: https://learn.datadoghq.com/courses/app-builder-integration tag: Centro de aprendizaje - text: Crear aplicaciones de autoservicio con App Builder para integraciones de terceros + text: Cree aplicaciones de autoservicio con App Builder para Third-Party Integrations title: Componentes --- +{{< site-region region="gov" >}} +
+App Builder está en versión preliminar en el sitio de Datadog Government US1-FED. +
+{{< /site-region >}} -Esta página proporciona una lista de componentes de interfaz de usuario que puedes utilizar al crear aplicaciones en App Builder. +## Descripción general {#overview} +Esta página proporciona una lista de componentes de interfaz de usuario que puede utilizar al crear aplicaciones en App Builder. -Muchas propiedades de componentes te permiten seleccionar entre los valores proporcionados. Si quieres utilizar una expresión para el valor de una propiedad, haz clic en **** junto a la propiedad para utilizar el editor de código. Para obtener más información sobre el uso de JavaScript en App Builder, consulta [Expresiones JavaScript][7]. -

+Muchas propiedades de los componentes le permiten seleccionar entre los valores proporcionados. Si desea utilizar una expresión para el valor de una propiedad, haga clic en {{< ui >}}</>{{< /ui >}} junto a la propiedad para usar el editor de código. + +Cualquier componente que pueda activar un evento tiene una lista de reacciones disponibles en [eventos y reacciones][13]. Estos componentes también pueden usar [reacciones personalizadas][14]. + +Para obtener más información sobre el uso de JavaScript en App Builder, consulte [JavaScript Expressions][7]. Para obtener más información sobre cómo guardar sus componentes como plantilla, consulte [Reusable Modules][12]. +
+ +## Componentes disponibles {#available-components} {{% collapse-content title="Botón" level="h3" %}} Los componentes de botón tienen las siguientes propiedades. -### General +#### General {#general} -Etiqueta (Label) -: Texto que se muestra en el botón.
+Etiqueta +: El texto que se muestra en el botón.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance} Intención -: Controla el color del botón, con colores que representan el propósito del botón.
-**Valores proporcionados**: por defecto, peligro, éxito, advertencia. +: Controla el color del botón, con colores que representan el propósito del mismo.
+**Valores proporcionados**: predeterminado, peligro, éxito, advertencia -Es Primario -: Diseñado para llamar la atención del usuario sobre las acciones más importantes para una página o flujo de trabajo determinado.
-**Valores proporcionados**: on, off +Es principal +: Diseñado para llamar la atención del usuario sobre la(s) acción(es) más importante(s) para una página o flujo de trabajo determinado.
+**Valores proporcionados**: encendido, apagado -Sin bordes -: Elimina el borde de cualquier botón. Al pasar el cursor por encima, se rellena el fondo.
-**Valores proporcionados**: on, off +Es sin borde +: Elimina el borde de cualquier botón. Al pasar el cursor, obtiene un relleno de fondo.
+**Valores proporcionados**: encendido, apagado Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events} Evento : **Valor**: clic Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, abrir url, descargar archivo, definir el valor de la variable de estado. - -Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data} -### Inspeccionar datos +Muestra pares de propiedad y valor en formato JSON. -Muestra pares de propiedades y valores en formato JSON. +#### Ejemplo {#example} -### Ejemplo - -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} {{% collapse-content title="Valor de llamada" level="h3" %}} Los componentes de valor de llamada tienen las siguientes propiedades. -### General +#### General {#general-1} -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión Valor -: Valor que resalta la llamada.
+: El valor que resalta la llamada.
**Valor**: cadena o expresión Unidad -: Unidad asociada al valor.
+: La unidad asociada con el valor.
**Valor**: cadena o expresión -### Estilo +#### Estilo {#style} Estilo -: Estilo visual del componente.
-**Valores proporcionados**: predeterminado, éxito, advertencia, peligro, azul, morado, rosa, naranja, amarillo, rojo, verde, gris, azul vivo, morado vivo, rosa vivo, naranja vivo, amarillo vivo, rojo vivo, verde vivo. +: El estilo visual del componente.
+**Valores proporcionados**: predeterminado, éxito, advertencia, peligro, azul, púrpura, rosa, anaranjado, amarillo, rojo, verde, gris, azul vívido, púrpura vívido, rosa vívido, anaranjado vívido, amarillo vívido, rojo vívido, verde vívido Tamaño -: Adapta el tamaño de la métrica para que sea proporcional al tamaño del valor.
+: Ajusta la métrica de forma responsiva para que sea proporcional al tamaño del valor.
**Valores proporcionados**: sm, md, lg, xl -### Aspecto +#### Apariencia {#appearance-1} Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-1} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-1} -Para ver este componente en contexto, consulta el plano de la aplicación [Gestor de instancias EC2][3]. +Para visualizar este componente en contexto, consulte el plano de la aplicación [EC2 Instance Manager][3]. {{% /collapse-content %}} @@ -139,14 +146,14 @@ Para ver este componente en contexto, consulta el plano de la aplicación [Gesto {{% collapse-content title="Casilla de verificación" level="h3" %}} Los componentes de casilla de verificación tienen las siguientes propiedades. -### General +#### General {#general-2} -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión Opciones -: La lista de casillas de verificación que el usuario puede seleccionar. El formato es una matriz de objetos donde cada objeto consiste en un par clave-valor `label` y `value`. El número mínimo de opciones es 1.
+: La lista de casillas de verificación que un usuario puede seleccionar. El formato es una matriz de objetos donde cada objeto consiste en un par clave-valor de `label` y `value`. El número mínimo de opciones es 1.
**Valor**: expresión
**Ejemplo**:
: ```json @@ -162,166 +169,263 @@ Opciones ]} ``` -### Aspecto +#### Apariencia {#appearance-2} Es multilínea -: Determina si el texto de la casilla de verificación debe aparecer en una nueva línea o ser truncado por una elipsis.
-**Valores proporcionados**: on, off +: Determina si el texto de la casilla de verificación debe ajustarse a una nueva línea o truncarse con puntos suspensivos.
+**Valores proporcionados**: encendido, apagado -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-1} Evento -: **Valor**: cambio
+: **Valor**: cambiar
Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. - -Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data-2} -### Inspeccionar datos +Muestra pares de propiedad y valor en formato JSON. -Muestra pares de propiedades y valores en formato JSON. +#### Ejemplo {#example-2} -### Ejemplo - -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} {{% collapse-content title="Contenedor" level="h3" %}} Los componentes de contenedor tienen las siguientes propiedades. -### Aspecto +#### Apariencia {#appearance-3} Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-3} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-3} -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} {{% collapse-content title="Gráfico personalizado" level="h3" %}} Los componentes de gráfico personalizado tienen las siguientes propiedades. -### General +#### General {#general-3} -Especificación Vega -: Cadena que representa una especificación Vega-Lite o Vega JSON válida. +Especificación de Vega +: Una cadena que representa una especificación JSON válida de Vega-Lite o Vega. -### Aspecto +#### Apariencia {#appearance-4} Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-4} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-4} -Para ver un ejemplo de uso de este componente, consulta [Gráficos personalizados][10]. +Para ver un ejemplo de cómo usar este componente, consulte [Gráficos personalizados][10]. {{% /collapse-content %}} +{{% collapse-content title="Selector de fecha" level="h3" %}} +Los componentes de selector de fecha tienen las siguientes propiedades. + +#### General {#general-4} -{{% collapse-content title="Selector de rangos de fechas" level="h3" %}} -Los componentes de selector de rangos de fechas tienen las siguientes propiedades. +Etiqueta +: La etiqueta que se muestra en la parte superior del selector de fecha.
+**Valor**: cadena o expresión + +Información sobre herramientas +: La información sobre herramientas que se mostrará al pasar el cursor sobre la etiqueta de entrada. La información sobre herramientas puede contener un marcador.
+**Valor**: cadena o expresión -### General +Valor predeterminado +: La fecha predeterminada del selector de fecha, que se muestra como una marca de tiempo UNIX en milisegundos.
+**Valor**: entero -Periodo de tiempo por defecto -: El periodo de tiempo por defecto que muestra el selector de fechas.
-**Valores proporcionados**: pasados 5 minutos, pasados 30 minutos, pasada 1 hora, pasadas 4 horas, pasado 1 día +Permitir fechas futuras +: Determina si la fecha puede establecerse después de la fecha del día actual.
+**Valores proporcionados**: encendido, apagado -### Aspecto +#### Apariencia {#appearance-5} Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-2} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir el estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +: setValue
+**Ejemplo**: Consulte [Funciones de estado][9]. + +#### Inspeccionar datos {#inspect-data-5} + +Muestra las propiedades y los valores en formato JSON. Los valores se muestran tanto como una marca de tiempo UNIX en milisegundos como en formato ISO (año, mes, día, hora, minutos, segundos y milisegundos). + +{{% /collapse-content %}} + + +{{% collapse-content title="Selector de rango de fechas" level="h3" %}} +Los componentes del selector de rango de fechas tienen las siguientes propiedades. + +#### General {#general-5} + +Intervalo de tiempo predeterminado +: El intervalo de tiempo predeterminado que muestra el selector de fechas.
+**Valores proporcionados**: últimos 5 minutos, últimos 30 minutos, última 1 hora, últimas 4 horas, último 1 día + +#### Apariencia {#appearance-6} + +Es visible +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado + +#### Eventos {#events-3} + +Evento +: **Valor**: cambiar + +Reacción +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. + +#### Inspeccionar datos {#inspect-data-6} -Para obtener más información sobre eventos, consulta [Eventos][1]. +Muestra pares de propiedad y valor en formato JSON. -### Inspeccionar datos +#### Ejemplo {#example-5} + +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} -Muestra pares de propiedades y valores en formato JSON. -### Ejemplo +{{% collapse-content title="Divisor" level="h3" %}} +Los componentes divisores tienen las siguientes propiedades. -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +#### Apariencia {#appearance-7} +Es visible +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -{{% collapse-content title="Entrada de archivos" level="h3" %}} -Los componentes de entrada de archivos tienen las siguientes propiedades. +#### Inspeccionar datos {#inspect-data-7} -### General +Muestra las propiedades en formato JSON. + +{{% /collapse-content %}} + + +{{% collapse-content title="Entrada de archivo" level="h3" %}} +Los componentes de entrada de archivo tienen las siguientes propiedades. + +#### General {#general-6} Tipos de archivo aceptados -: Determina qué tipos de archivo acepta el componente de entrada de archivos.
+: Determina qué tipos de archivo acepta el componente de entrada de archivo.
**Valores**: .csv, .json -### Aspecto +#### Apariencia {#appearance-8} Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-4} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +#### Inspeccionar datos {#inspect-data-8} + +Muestra pares de propiedad y valor en formato JSON. + +{{% /collapse-content %}} + + +{{% collapse-content title="Imagen" level="h3" %}} +Los componentes de imagen tienen las siguientes propiedades. + +#### General {#general-7} + +Fuente +: La imagen que se mostrará. Los formatos admitidos son JPG, PNG y GIF. El tamaño máximo de carga es de 4 MB.
+**Valores**: URL o archivo + +#### Apariencia {#appearance-9} -Para obtener más información sobre eventos, consulta [Eventos][1]. +Ajustar +: Determina las dimensiones de la imagen dentro de los límites del componente de imagen.
+**Valores proporcionados**: llenar, contener, cubrir, ninguno -### Inspeccionar datos +Relleno +: Determina el ancho del espacio entre los límites de la imagen y los límites del componente de imagen.
+**Valores proporcionados**: ninguno, pequeño, mediano, grande -Muestra pares de propiedades y valores en formato JSON. +Alineación vertical +: Determina la posición vertical de la imagen dentro de los límites del componente de imagen.
+**Valores proporcionados**: alinear arriba, alinear al centro, alinear abajo + +Alineación horizontal +: Determina la posición horizontal de la imagen dentro de los límites del componente de imagen.
+**Valores proporcionados**: alinear a la izquierda, alinear al centro, alinear a la derecha + +Borde +: Determina si el componente de imagen tiene un borde visual alrededor de sus bordes.
+**Valores proporcionados**: encendido, apagado + +Fondo transparente +: Determina si el fondo dentro del componente de imagen es transparente.
+**Valores proporcionados**: encendido, apagado + +Está cargando +: Determina si se muestra un icono de carga mientras se carga la imagen.
+**Valores proporcionados**: encendido, apagado + +Es visible +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado + +#### Inspeccionar datos {#inspect-data-9} + +Muestra las propiedades en formato JSON. {{% /collapse-content %}} @@ -329,34 +433,34 @@ Muestra pares de propiedades y valores en formato JSON. {{% collapse-content title="Logotipo de integración" level="h3" %}} Los componentes de logotipo de integración tienen las siguientes propiedades. -### General +#### General {#general-8} -ID de integración -: Especifica el icono del logotipo de integración que se mostrará.
+Id. de integración +: Especifica qué icono de logotipo de integración mostrar.
**Valor**: cadena o expresión
**Ejemplos**: datadog, amazon-s3, postgres, okta -### Aspecto +#### Apariencia {#appearance-10} Alineación horizontal : Controla la posición horizontal del logotipo dentro del componente.
-**Valores proporcionados**: alinear a la izquierda, alinear al centro, alinear a la derecha +**Valores proporcionados**: alinear a la izquierda, alinear a la centro, alinear a la derecha Alineación vertical : Controla la posición vertical del logotipo dentro del componente.
**Valores proporcionados**: alinear arriba, alinear al centro, alinear abajo Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-10} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. {{% /collapse-content %}} @@ -364,28 +468,28 @@ Muestra pares de propiedades y valores en formato JSON. {{% collapse-content title="Formulario" level="h3" %}} Los componentes de formulario tienen las siguientes propiedades. -### General +#### General {#general-9} Título : El título del formulario.
**Valor**: cadena o expresión -Valor por defecto -: El valor por defecto que la aplicación rellena en el formulario. Para rellenar un campo específico, puedes utilizar la notación JSON, como `{"org":"frontend"}` para rellenar el campo `org` con el valor `frontend`.
+Valor predeterminado +: El valor predeterminado que la aplicación completa en el formulario. Para completar un campo específico, puede usar notación JSON, como `{"org":"frontend"}` para completar el campo `org` con el valor `frontend`.
**Valor**: cadena o expresión -### Campos +#### Campos {#fields} -Cada elemento representa un campo del formulario. Cada campo tiene uno de los siguientes tipos: `textInput`, `select`, `textArea` o `text`. +Cada elemento representa un campo en el formulario. Los campos tienen cada uno de los siguientes tipos: `textInput`, `select`, `textArea` o `text`. -Los campos tienen algunas o todas las propiedades siguientes dependiendo de su tipo de campo: +Los campos tienen algunas o todas las siguientes propiedades dependiendo de su tipo de campo: Nombre del campo -: El identificador único de un campo. Puedes utilizar este identificador para hacer referencia al campo en una expresión.
+: El identificador único para un campo. Puede usar este identificador para hacer referencia al campo en una expresión.
**Valor**: cadena o expresión -Etiqueta (Label) -: Etiqueta que aparece arriba del campo.
+Etiqueta +: La etiqueta que se muestra encima del campo.
**Valor**: cadena o expresión Contenido @@ -393,202 +497,193 @@ Contenido **Valor**: cadena o expresión Opciones -: Las opciones disponibles en un campo `select`. Las opciones deben ser una matriz de objetos, con una clave `const` para el valor de la opción y una clave opcional `title` para la etiqueta de la opción.
**Valor**: Los campos `label` y `value` de cada objeto pueden ser una cadena o una expresión.
-Puedes rellenar cada objeto utilizando la interfaz gráfica de usuario (por defecto), o activar **Raw** para utilizar la entrada JSON sin procesar para proporcionar toda la matriz de objetos. +: Las opciones disponibles en un campo `select`. Las opciones deben ser una matriz de objetos, con una clave `const` para el valor de la opción y una clave `title` opcional para la etiqueta de la opción.
**Valor**: El `label` y `value` de cada objeto pueden ser una cadena o expresión.
+Puede completar cada objeto usando la GUI (predeterminado), o activar {{< ui >}}Raw{{< /ui >}} para usar entrada JSON sin procesar para proporcionar toda la matriz de objetos. -Texto del parámetro -: El texto que aparece en un campo `textInput` o `textArea` cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra en un campo `textInput` o `textArea` cuando no se ingresa ningún valor.
**Valor**: cadena o expresión -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible : Determina si el campo es visible en el formulario.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Es obligatorio : Determina si el campo es obligatorio para enviar el formulario.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -### Aspecto +#### Apariencia {#appearance-11} Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-5} Evento -: **Valor**: enviar, modificar, validar +: **Valor**: enviar, cambiar, validar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. Función de estado : setValue
-**Ejemplo**: `form0.setValue({name: 'node-group-1'})` define el valor del componente `form0` en `{name: 'node-group-1'}`. +**Ejemplo**: `form0.setValue({name: 'node-group-1'})` establece el valor del componente `form0` en `{name: 'node-group-1'}`.
+Consulte [Funciones de estado][9] para obtener más información. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data-11} -### Inspeccionar datos - -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. {{% /collapse-content %}} {{% collapse-content title="Entrada JSON" level="h3" %}} -Los componentes de entradas JSON tienen las siguientes propiedades. +Los componentes de entrada JSON tienen las siguientes propiedades. -### General +#### General {#general-10} -Etiqueta (Label) -: Texto que aparece en la parte superior del componente. +Etiqueta +: El texto que se muestra en la parte superior del componente. -Valor por defecto -: El valor JSON por defecto que muestra el componente. +Valor predeterminado +: El valor JSON predeterminado que muestra el componente. -### Aspecto +#### Apariencia {#appearance-12} -Solo lectura +Es de solo lectura : Determina si el componente es de solo lectura.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-6} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. - -Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. - -Para obtener más información sobre eventos, consulta [Eventos][1]. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-12} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. {{% /collapse-content %}} {{% collapse-content title="Modal" level="h3" %}} -Los componentes de modales tienen las siguientes propiedades. +Los componentes modales tienen las siguientes propiedades. -### General +#### General {#general-11} Título : El título del modal.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance-13} Tamaño : La escala del modal.
**Valores proporcionados**: sm, md, lg Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-7} Evento -: **Valores**: toggleOpen, close, open +: **Valores**: toggleOpen, cerrar, abrir Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: fetch
-**Ejemplo**: Consulta los [eventos][9]. +Función de estado : setIsOpen
-**Ejemplo**: `modal0.setIsOpen(true)` define el estado de `modal0` como abierto. - -Para obtener más información sobre eventos, consulta [Eventos][1]. +**Ejemplo**: `modal0.setIsOpen(true)` establece el estado de `modal0` en abierto.
+Consulte [Funciones de estado][9] para obtener más información. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-13} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-6} -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} -{{% collapse-content title="Entrada numérica" level="h3" %}} -Los componentes de entradas numéricas tienen las siguientes propiedades. +{{% collapse-content title="Entrada de número" level="h3" %}} +Los componentes de entrada de número tienen las siguientes propiedades. -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión -Valor por defecto -: El valor por defecto que la aplicación rellena en el cuadro de entrada.
-**Valor**: número o expresión que se evalúa a un número +Valor predeterminado +: El valor predeterminado que la aplicación completa en el cuadro de entrada.
+**Valor**: número o expresión que se evalúa como un número -Texto del parámetro -: Texto que aparece cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra cuando no se ingresa ningún valor.
**Valor**: cadena o expresión -### Validación +#### Validación {#validation} -Mín +Mín. : El valor mínimo que acepta la entrada numérica.
-**Valor**: número o expresión que se evalúa a un número +**Valor**: número o expresión que se evalúa como un número -Máx +Máx. : El valor máximo que acepta la entrada numérica.
-**Valor**: número o expresión que se evalúa a un número. +**Valor**: número o expresión que se evalúa como un número -### Aspecto +#### Apariencia {#appearance-14} -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-8} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: fetch
-**Ejemplo**: Consulta los [eventos][9]. +Función de estado : setValue
-**Ejemplo**: `numberInput0.setValue(3)` define el valor del componente `numberInput0` como `3`. - -Para obtener más información sobre eventos, consulta [Eventos][1]. +**Ejemplo**: `numberInput0.setValue(3)` establece el valor del componente `numberInput0` en `3`.
+Consulte [Funciones de estado][9] para obtener más información. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-14} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-7} -Para ver este componente en contexto, consulta el plano de la aplicación [ECS Task Manager][4]. +Para visualizar este componente en contexto, consulte el plano de la aplicación [ECS Task Manager][4]. {{% /collapse-content %}} @@ -597,14 +692,14 @@ Para ver este componente en contexto, consulta el plano de la aplicación [ECS T {{% collapse-content title="Radio" level="h3" %}} Los componentes de radio tienen las siguientes propiedades. -### General +#### General {#general-12} -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión Opciones -: La lista de opciones del botón de radio que el usuario puede seleccionar. El formato es una matriz de objetos donde cada objeto consiste en un par clave-valor `label` y `value`.
+: La lista de opciones de botones de radio que un usuario puede seleccionar. El formato es una matriz de objetos donde cada objeto consiste en un par clave-valor de `label` y `value`.
**Valor**: expresión
**Ejemplo**:
: ```json @@ -620,110 +715,155 @@ Opciones ]} ``` -Valor por defecto -: Valor que se selecciona cuando se carga radio.
+Valor predeterminado +: El valor que se selecciona cuando se carga el componente de radio.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance-15} -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-9} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. -Estado : setValue
-**Ejemplo**: `radioButtons0.setValue("production")` define el valor del componente `radioButtons0` como `"production"`. +: setValue
+**Ejemplo**: `radioButtons0.setValue("production")` establece el valor del componente `radioButtons0` en `"production"`.
+Consulte [Funciones de estado][9] para obtener más información. + +#### Inspeccionar datos {#inspect-data-15} + +Muestra pares de propiedad y valor en formato JSON. +{{% /collapse-content %}} + + + +{{% collapse-content title="Renderizador de React" level="h3" %}} +Los componentes del renderizador de React tienen las siguientes propiedades. + +#### General {#general-13} + +Definición del componente de React +: El código que se ejecuta para crear un componente de React.
+ +Props de entrada del componente +: Las propiedades que se pasan al componente de React y a las que se puede acceder en el objeto propiedades del componente. + +Estado inicial del componente +: Establece los valores de estado iniciales para su componente. Este estado se utiliza cuando el componente se renderiza por primera vez o si aún no se ha establecido ningún estado. El componente puede acceder a estos datos a través de props.state.
+ +#### Apariencia {#appearance-16} -Para obtener más información sobre eventos, consulta [Eventos][1]. +Es visible +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado + +#### Eventos {#events-10} +Evento +: **Valores**: establecer estado del componente, función de devolución de llamada + +Nombre de la función +: **Valor**: props.customFunctionName + +Reacción +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. + +#### Inspeccionar datos {#inspect-data-16} + +Muestra pares de propiedad y valor en formato JSON. + +#### Relaciones {#relationships} -### Inspeccionar datos +Muestra las dependencias de datos entre el renderizador de React y los componentes en la aplicación. + +#### Ejemplo {#example-8} + +Para ver un ejemplo de cómo usar este componente, consulte [Renderizador de React][11]. -Muestra pares de propiedades y valores en formato JSON. {{% /collapse-content %}} -{{% collapse-content title="Búsqueda" level="h3" %}} +{{% collapse-content title="Buscar" level="h3" %}} Los componentes de búsqueda tienen las siguientes propiedades. -### General +#### General {#general-14} -Valor por defecto -: Valor por defecto que la aplicación rellena en la casilla de búsqueda.
+Valor predeterminado +: El valor predeterminado que la aplicación completa en el cuadro de búsqueda.
**Valor**: cadena o expresión -Texto del parámetro -: Texto que aparece cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra cuando no se ingresa ningún valor.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance-17} Tamaño -: Escala del componente de búsqueda.
+: La escala del componente de búsqueda.
**Valores proporcionados**: sm, md, lg Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-11} Evento -: **Valores**: cambio, envío +: **Valores**: cambiar, enviar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. -Estado : setValue
-**Ejemplo**: `search0.setValue("search query")` define el valor del componente `search0` como `"search query"`. +Función de estado +: setValue
+**Ejemplo**: `search0.setValue("search query")` establece el valor del componente `search0` en `"search query"`.
+Consulte [Funciones de estado][9] para obtener más información. -Para obtener más información sobre eventos, consulta [Eventos][1]. +Para obtener más información sobre eventos, consulte [Eventos][1]. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-17} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-9} -Para ver este componente en contexto, consulta el plano de la aplicación [Gestor de instancias EC2][3]. +Para visualizar este componente en contexto, consulte el plano de la aplicación [EC2 Instance Manager][3]. {{% /collapse-content %}} -{{% collapse-content title="Seleccionar" level="h3" %}} +{{% collapse-content title="Select" level="h3" %}} Los componentes de selección tienen las siguientes propiedades. -### General +#### General {#general-15} -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión -Texto del parámetro -: Texto que aparece cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra cuando no se ingresa ningún valor.
**Valor**: cadena o expresión Opciones -: La lista de opciones que el usuario puede seleccionar. El formato es una matriz de objetos donde cada objeto consta de un par clave-valor de `label` y `value`.
+: La lista de opciones de selección entre las que un usuario puede elegir. El formato es una matriz de objetos donde cada objeto consiste en un par clave-valor de `label` y `value`.
**Valor**: expresión
**Ejemplo**:
: ```json @@ -739,216 +879,248 @@ Opciones ]} ``` -Valor por defecto -: Valor que se selecciona cuando se carga la selección.
+Valor predeterminado +: El valor que se selecciona cuando se carga la selección.
**Valor**: cadena o expresión -Es multiselección +Es selección múltiple : Determina si el usuario puede seleccionar más de una opción a la vez.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -### Aspecto +#### Apariencia {#appearance-18} -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-12} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. -Estado : setValue
-**Ejemplo**: `select0.setValue("staging")` define el valor del componente `select0` como `"staging"`. +Función de estado +: setValue
+**Ejemplo**: `select0.setValue("staging")` establece el valor del componente `select0` en `"staging"`.
+Consulte [Funciones de estado][9] para obtener más información. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data-18} -### Inspeccionar datos +Muestra pares de propiedad y valor en formato JSON. -Muestra pares de propiedades y valores en formato JSON. +#### Ejemplo {#example-10} + +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} -### Ejemplo -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +{{% collapse-content title="Panel lateral" level="h3" %}} +Los componentes del panel lateral tienen las siguientes propiedades. + +#### General {#general-16} + +Título +: El título para el panel lateral.
+**Valor**: cadena + +#### Apariencia {#appearance-19} + +Ancho +: Determina el ancho del panel lateral. Se debe incluir un signo de porcentaje (`%`) después del valor.
+**Valor**: entero + +Ocultar botón de cerrar +: Determina si el panel lateral muestra una X para cerrar el panel.
+**Valores proporcionados**: encendido, apagado + +#### Eventos {#events-13} + +Evento +: **Valores**: alternar abrir, cerrar, abrir + +Reacción +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. + +Función de estado +: setIsOpen
+**Ejemplo**: `sidePanel0.setIsOpen(true)` establece el estado de `sidePanel0` en abierto.
+Consulte [Funciones de estado][9] para obtener más información. + +#### Inspeccionar datos {#inspect-data-19} + +Muestra las propiedades y los valores en formato JSON. + +{{% /collapse-content %}} {{% collapse-content title="Pestaña" level="h3" %}} Los componentes de pestañas tienen las siguientes propiedades. -### Tabs +#### Pestañas {#tabs} -Lista de vistas de pestaña. Utiliza el **+ (más)** para añadir vistas adicionales. +Una lista de vistas de pestañas. Utilice el ({{< ui >}}+{{< /ui >}}) para agregar vistas adicionales. -### Estilo +#### Estilo {#style-1} Estilo -: Estilo de colores utilizado para el componente de pestaña.
-**Valores proporcionados**: por defecto, morado, rosa, naranja, rojo, verde +: El estilo de color utilizado para el componente de pestañas.
+**Valores proporcionados**: predeterminado, púrpura, rosa, anaranjado, rojo, verde Alineación -: Forma en que los pestañas están alineadas dentro del componente de pestaña.
-**Valores proporcionados**: horizontal (→), vertical (↓) +: La forma en que las pestañas están alineadas dentro del componente de pestañas.
+**Valores proporcionados**: Horizontal (→), vertical (↓) Impacto -: Controla si el fondo de la pestaña seleccionada se colorea por completo o si sólo se colorea una pequeña banda en la parte inferior.
+: Controla si el fondo de la pestaña seleccionada está completamente coloreado o si solo una pequeña banda en la parte inferior está coloreada.
**Valores proporcionados**: alto, bajo -### Aspecto +#### Apariencia {#appearance-20} Ocultar pestañas -: Controla si se muestran los marcadores de pestaña.
-**Valores proporcionados**: on, off +: Controla si los marcadores de pestaña se muestran.
+**Valores proporcionados**: encendido, apagado Ocultar cuerpo : Controla si se muestra el cuerpo de las pestañas.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-14} Evento -: **Valor**: cambio +: **Valor**: cambiar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +Función de estado : setTabIndex
-**Ejemplo**: `tab0.setTabIndex(0)` define el valor del componente `tab0` en la primera pestaña. - -Para obtener más información sobre eventos, consulta [Eventos][1]. +**Ejemplo**: `tab0.setTabIndex(0)` establece el valor del componente `tab0` en la primera pestaña.
+Consulte [Funciones de estado][9] para obtener más información. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-20} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. {{% /collapse-content %}} {{% collapse-content title="Tabla" level="h3" %}} -Los componentes de tablas tienen las siguientes propiedades. +Los componentes de tabla tienen las siguientes propiedades. -### General +#### General {#general-17} Título -: Un título para la tabla. Selecciona **Markdown** para un formato personalizado.
+: Un título para la tabla. Seleccione {{< ui >}}Markdown{{< /ui >}} para formato personalizado.
**Valor**: cadena Fuente de datos -: Matriz de objetos que se muestran en una tabla.
+: La matriz de objetos que se mostrará en una tabla.
**Valores**: consulta, datos de demostración, componentes -### Columnas +#### Columnas {#columns} Cada columna de datos de la fuente de datos se representa aquí y tiene las siguientes propiedades: -Etiqueta (Label) -: Texto que aparece en la parte superior de la columna.
+Etiqueta +: El texto que se muestra en la parte superior de la columna.
**Valor**: cadena o expresión Ruta de datos -: Ruta JSON para acceder a valores anidados en objetos y matrices de una columna determinada.
+: Ruta JSON para acceder a valores anidados dentro de objetos y matrices de una columna determinada.
**Valor**: cadena o expresión Formato -: Tipo de formato que adopta la columna.
-**Valores proporcionados**: cadena, enlace, píldora de estado, fecha/hora, markdown, etiquetas (tags), barra de porcentaje, número, barra de puntuación, avatar. +: El tipo de formato que adopta la columna.
+**Valores proporcionados**: cadena, enlace, píldora de estado, fecha / hora, marcadores, etiquetas, barra de porcentaje, número, barra de puntuación, avatar -Clasificable -: Determina si el usuario puede clasificar por la columna.
+Ordenable +: Determina si el usuario puede ordenar por la columna.
Copiable : Determina si el usuario puede hacer clic para copiar el contenido de la columna.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Filtrable : Determina si una opción de filtro está disponible para la columna.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado -Algunas columnas tienen propiedades adicionales basadas en su propiedad **Formato**. +Algunas columnas tienen propiedades adicionales basadas en su propiedad {{< ui >}}Formatting{{< /ui >}}. -### Paginación +#### Paginación {#pagination} -Incluye resumen -: Determina si se muestra un resumen de la paginación directamente encima de la tabla.
-**Valores proporcionados**: on, off +Tiene resumen +: Determina si se muestra un resumen de paginación directamente encima de la tabla.
+**Valores proporcionados**: encendido, apagado Tamaño de página -: Número de filas que se muestran por página.
-**Valor**: número o expresión que se evalúa a un número. +: Número de filas por página a mostrar.
+**Valor**: número o expresión que se evalúa como un número -Recuento total -: Número total de filas que se muestran en la tabla.
-**Valor**: número o expresión que se evalúa a un número. +Conteo total +: Número total de filas a mostrar en la tabla.
+**Valor**: número o expresión que se evalúa como un número -Tipo +Type : Determina el tipo de paginación.
-**Valores proporcionados**: lado cliente, lado servidor. +**Valores proporcionados**: lado del cliente, lado del servidor -### Clasificación +#### Ordenamiento {#sorting} -Selecciona la clasificación de la tabla por columna y dirección por defecto. +Seleccione la columna y la dirección para el ordenamiento predeterminado de la tabla. Columna -: La columna por la que se clasificará.
-**Valor**: nombre de columna +: La columna por la cual ordenar.
+**Valor**: nombre de la columna Dirección -: La dirección para clasificar.
+: La dirección para ordenar.
**Valores proporcionados**: ascendente, descendente -### Acciones de fila +#### Acciones de fila {#row-actions} -Al añadir una acción de fila se añade una columna **Actions** (Acciones) a la tabla, que contiene botones de acción definidos por el usuario. Las filas pueden tener múltiples acciones. Las acciones tienen las siguientes propiedades: +Agregar una acción de fila añade una columna {{< ui >}}Actions{{< /ui >}} a la tabla, la cual contiene botones de acción definidos por el usuario. Las filas pueden tener múltiples acciones. Las acciones tienen las siguientes propiedades: -Etiqueta (Label) -: Texto que se muestra en el botón de acción.
+Etiqueta +: El texto que se muestra en el botón de acción.
**Valor**: cadena o expresión -Principal -: Diseñado para llamar la atención del usuario sobre las acciones más importantes para una determinada página o flujo de trabajo.
-**Valores proporcionados**: on, off +Primario +: Diseñado para llamar la atención del usuario sobre la(s) acción(es) más importante(s) para una página o flujo de trabajo determinado.
+**Valores proporcionados**: encendido, apagado -Sin bordes -: Elimina el borde de cualquier botón. Al pasar el cursor por encima, se rellena el fondo.
-**Valores proporcionados**: on, off +Sin borde +: Elimina el borde de cualquier botón. Al pasar el cursor, obtiene un relleno de fondo.
+**Valores proporcionados**: encendido, apagado -Desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Nivel : Controla el color del botón según su intención.
-**Valores proporcionados**: por defecto, peligro, éxito, advertencia +**Valores proporcionados**: predeterminado, peligro, éxito, advertencia Reacciones -: Las reacciones que activa el botón. Un botón puede tener varias reacciones.
-**Valores proporcionados**: descargar archivo, abrir modal, cerrar modal, abrir panel lateral, cerrar panel lateral, abrir URL, definir estado del componente, definir valor de variable de estado, notificación Toast, activar acción, personalizado
-Algunos tipos de reacciones tienen propiedades adicionales. +: Las reacciones que activa el botón. Un botón puede tener múltiples reacciones.
+**Valores proporcionados**: descargar archivo, abrir modal, cerrar modal, abrir panel lateral, cerrar panel lateral, abrir URL, establecer estado del componente, establecer valor de variable de estado, notificación emergente, activar acción, personalizado
+Algunos tipos de reacción tienen propiedades adicionales. -Función de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. - -### Aspecto +#### Apariencia {#appearance-21} Desplazable : Determina de qué formas se puede desplazar la tabla.
@@ -956,63 +1128,61 @@ Desplazable Está cargando : Muestra un indicador de carga.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Tiene ajuste de texto : Determina si el texto de la celda se ajusta.
-**Valores proporcionados**: on, off +**Valores proporcionados**: encendido, apagado Tiene subfilas -: Habilita subfilas para cada fila. Incluiye la propiedad `subRows` en la fuente de datos.
-**Valores proporcionados**: on, off +: Habilita subfilas para cada fila. Incluya la propiedad `subRows` en la fuente de datos.
+**Valores proporcionados**: encendido, apagado -Se puede buscar -: Determina si se añade una barra de búsqueda a la tabla.
-**Valores proporcionados**: on, off +Es buscable +: Determina si se debe agregar una barra de búsqueda a la tabla.
+**Valores proporcionados**: encendido, apagado -Mostrar opciones de clasificación -: Añade un botón **Clasificar** a la tabla que ofrece a los usuarios opciones de clasificación.
-**Valores proporcionados**: on, off +Mostrar opciones de ordenamiento +: Agrega un botón {{< ui >}}Sort{{< /ui >}} a la tabla que ofrece opciones de ordenamiento a los usuarios.
+**Valores proporcionados**: encendido, apagado Mostrar opciones de columna -: Añade un botón **Columnas** a la tabla para mostrar, ocultar o reorganizar las columnas de la tabla.
-**Valores proporcionados**: on, off +: Agrega un botón {{< ui >}}Columns{{< /ui >}} a la tabla para mostrar, ocultar o reorganizar las columnas de la tabla.
+**Valores proporcionados**: encendido, apagado -Tiene filtro de intervalo de fechas -: Añade un filtro de intervalo de fechas a la tabla.
-**Valores proporcionados**: on, off +Tiene filtro de rango de fechas +: Agrega un filtro de rango de fechas a la tabla.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-15} Evento : **Valores**: pageChange, tableRowClick Reacción -: **Valores**: descargar archivo, abrir modal, cerrar modal, abrir panel lateral, cerrar panel lateral, definir estado de componente, definir valor de variable de estado, notificación Toast, activar acción, personalizado +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +Función de estado : setSelectedRow
-**Ejemplo**:
  • `table0.setSelectedRow(0)` define la propiedad `selectedRow` de `table0` en la primera fila.
  • `table0.setSelectedRow(null)` elimina la propiedad `selectedRow`.
+**Ejemplos**:
  • `table0.setSelectedRow(0)` establece la propiedad `selectedRow` de `table0` en la primera fila.
  • `table0.setSelectedRow(null)` borra la propiedad `selectedRow`.
: setPageIndex
-**Ejemplo**: `table0.setPageIndex(0)` define la propiedad `pageIndex` de `table0` en la primera página. - -Para obtener más información sobre eventos, consulta [Eventos][1]. +**Ejemplo**: `table0.setPageIndex(0)` establece la propiedad `pageIndex` de `table0` en la primera página.
+Consulte [Funciones de estado][9] para obtener más información. -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-21} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Ejemplo +#### Ejemplo {#example-11} -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. -Para ver ejemplos de uso de funciones avanzadas en tablas, consulta [Tablas][6]. +Para ver ejemplos que muestran cómo utilizar las funciones avanzadas de las tablas, consulte [Tables][6]. {{% /collapse-content %}} @@ -1021,156 +1191,156 @@ Para ver ejemplos de uso de funciones avanzadas en tablas, consulta [Tablas][6]. {{% collapse-content title="Texto" level="h3" %}} Los componentes de texto tienen las siguientes propiedades. -### General +#### General {#general-18} Contenido -: Contenido que muestra el componente.
+: El contenido que muestra el componente.
**Valor**: cadena o expresión Tipo de contenido -: Determina cómo representar el texto. Cuando se selecciona **Markdown**, el componente de texto admite la [sintaxis básica de Markdown][8], incluidas las imágenes que alojas en otro lugar.
+: Determina cómo renderizar el texto. Cuando se selecciona {{< ui >}}Markdown{{< /ui >}}, el componente de texto admite [sintaxis Markdown básica][8], incluidas las imágenes que alojas en otro lugar.
**Valores proporcionados**: texto sin formato, Markdown -### Aspecto +#### Apariencia {#appearance-22} -Alineación de texto +Alineación del texto : Determina la alineación horizontal del texto dentro del componente.
-**Valores proporcionados**: alinear a la izquierda, alinear al centro, alinear a la derecha. +**Valores proporcionados**: alinear a la izquierda, alinear al centro, alinear a la derecha Alineación vertical : Determina la alineación vertical del texto dentro del componente.
-**Valores proporcionados**: alinear arriba, alinear al centro, alinear abajo. +**Valores proporcionados**: alinear arriba, alinear al centro, alinear abajo Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Inspeccionar datos +#### Inspeccionar datos {#inspect-data-22} -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. -### Relaciones +#### Relaciones {#relationships-1} -Muestra las dependencias entre los datos de la tabla y los componentes de la aplicación. +Muestra las dependencias de datos entre los datos de la tabla y los componentes en la aplicación. -### Ejemplo +#### Ejemplo {#example-12} -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} {{% collapse-content title="Área de texto" level="h3" %}} Los componentes de área de texto tienen las siguientes propiedades. -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión -Valor por defecto -: Valor que se selecciona cuando se carga el área de texto.
+Valor predeterminado +: El valor que se selecciona cuando se carga el área de texto.
**Valor**: cadena o expresión -Texto del parámetro -: Texto que aparece cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra cuando no se ingresa ningún valor.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance-23} -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-16} Evento -: **Valores**: cambio, envío +: **Valores**: cambiar, enviar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +Función de estado : setValue
-**Ejemplo**: `textArea0.setValue("text")` define el valor del componente `textArea0` como `"text"`. +**Ejemplo**: `textArea0.setValue("text")` establece el valor del componente `textArea0` en `"text"`.
+Consulte [Funciones de estado][9] para obtener más información. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data-23} -### Inspeccionar datos - -Muestra pares de propiedades y valores en formato JSON. +Muestra pares de propiedad y valor en formato JSON. {{% /collapse-content %}} {{% collapse-content title="Entrada de texto" level="h3" %}} Los componentes de entrada de texto tienen las siguientes propiedades. -Etiqueta (Label) -: Texto que aparece en la parte superior del componente.
+Etiqueta +: El texto que se muestra en la parte superior del componente.
**Valor**: cadena o expresión -Valor por defecto -: Valor que se selecciona cuando se carga la entrada de texto.
+Valor predeterminado +: El valor que se selecciona cuando se carga la entrada de texto.
**Valor**: cadena o expresión -Texto del parámetro -: Texto que aparece cuando no se introduce ningún valor.
+Texto de marcador de posición +: El texto que se muestra cuando no se ingresa ningún valor.
**Valor**: cadena o expresión -### Aspecto +#### Apariencia {#appearance-24} -Está desactivado -: Aplica el estilo desactivado y elimina las interacciones.
-**Valores proporcionados**: on, off +Está deshabilitado +: Aplica el estilo de deshabilitado y elimina las interacciones.
+**Valores proporcionados**: encendido, apagado Es visible -: Determina si el componente es visible para el usuario final. En modo edición, todos los componentes permanecen visibles.
-**Valores proporcionados**: on, off +: Determina si el componente es visible para el usuario final. En modo de edición, todos los componentes permanecen visibles.
+**Valores proporcionados**: encendido, apagado -### Eventos +#### Eventos {#events-17} Evento -: **Valores**: cambio, envío +: **Valores**: cambiar, enviar Reacción -: **Valores**: personalizado, definir estado del componente, activar consulta, abrir modal, cerrar modal, descargar archivo, definir valor de variable de estado. +: **Valores**: los ejemplos incluyen abrir modal, activar acción y establecer estado del componente
+Consulte [Eventos][1] para obtener la lista completa de reacciones disponibles. -Funciones de estado -: Recuperar
-**Ejemplo**: Consulta [Eventos][9]. +Función de estado : setValue
-**Ejemplo**: `textInput0.setValue("text")` define el valor del componente `textInput0` como `"text"`. +**Ejemplo**: `textInput0.setValue("text")` establece el valor del componente `textInput0` en `"text"`. +Consulte [Funciones de estado][9] para obtener más información. -Para obtener más información sobre eventos, consulta [Eventos][1]. +#### Inspeccionar datos {#inspect-data-24} -### Inspeccionar datos +Muestra pares de propiedad y valor en formato JSON. -Muestra pares de propiedades y valores en formato JSON. +#### Ejemplo {#example-13} -### Ejemplo - -Para ver este componente en contexto, consulta el plano de la aplicación [Explorador de métricas y Builder de monitores][2]. -{{% /collapse-content %}} +Para visualizar este componente en contexto, consulte el plano de la aplicación [Metrics Explorer & Monitors Builder][2]. +{{% /collapse-content %}} -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -
¿Tienes preguntas o comentarios? Únete al canal **#app-builder** en [Datadog Community Slack][5]. +
¿Tiene preguntas o comentarios? Únase al canal {{< ui >}}#app-builder{{< /ui >}} en el [Datadog Community Slack][5]. -[1]: /es/service_management/app_builder/events +[1]: /es/actions/app_builder/events [2]: https://app.datadoghq.com/app-builder/apps/edit?activeTab=queries&showActionCatalog=false&template=datadog_metrics_and_monitors&viewMode=preview [3]: https://app.datadoghq.com/app-builder/apps/edit?activeTab=queries&showActionCatalog=false&template=ec2_instance_manager&viewMode=preview [4]: https://app.datadoghq.com/app-builder/apps/edit?activeTab=queries&showActionCatalog=false&template=ecs_task_manager&viewMode=preview -[5]: https://datadoghq.slack.com/ -[6]: /es/service_management/app_builder/components/tables/ -[7]: /es/service_management/app_builder/expressions +[5]: https://chat.datadoghq.com/ +[6]: /es/actions/app_builder/components/tables/ +[7]: /es/actions/app_builder/expressions [8]: https://www.markdownguide.org/basic-syntax/ -[9]: /es/service_management/app_builder/events/#state-functions -[10]: /es/service_management/app_builder/components/custom_charts/ \ No newline at end of file +[9]: /es/actions/app_builder/events/#state-functions +[10]: /es/actions/app_builder/components/custom_charts/ +[11]: /es/actions/app_builder/components/react_renderer/ +[12]: /es/actions/app_builder/components/reusable_modules/ +[13]: /es/actions/app_builder/events/#events-and-reactions +[14]: /es/actions/app_builder/events/#custom-reactions \ No newline at end of file diff --git a/hugo/content/es/actions/connections/integration.md b/hugo/content/es/actions/connections/integration.md new file mode 100644 index 00000000000..b2938217541 --- /dev/null +++ b/hugo/content/es/actions/connections/integration.md @@ -0,0 +1,105 @@ +--- +aliases: +- /es/actions/connections/aws_integration/ +- /es/actions/connections/integration_connections/ +description: Utilice las credenciales de las Integrations de Datadog existentes para + autenticar acciones en flujos de trabajo y aplicaciones. +disable_toc: false +further_reading: +- link: /actions/connections/ + tag: Documentación + text: Obtenga más información sobre las credenciales de conexión +title: Integration Connections +--- +## Descripción general {#overview} + +Integration Connections permiten que los flujos de trabajo y las acciones de Datadog utilicen credenciales que ya están configuradas en Integrations de Datadog. Esto elimina la necesidad de configurar una conexión independiente para una acción y simplifica el acceso al servicio externo. + +## Casos de uso admitidos {#supported-use-cases} + +Integration Connections son compatibles con: + +- **ServiceNow**: utilice las credenciales de una instancia de integración de ServiceNow existente para ejecutar acciones de ServiceNow. +- **AWS**: utilice las credenciales de una cuenta de integración de AWS existente para ejecutar acciones de AWS de solo lectura compatibles. Para obtener más información sobre las acciones y permisos de AWS compatibles, consulte [conexiones de integración de AWS](#aws-integration-connections). + +Para otras integraciones u operaciones, [cree una conexión][2]. + +## Configuración {#configuration} + +Antes de comenzar, asegúrese de que la integración esté activa y de que tenga acceso para editar los permisos de la cuenta o instancia de integración que desea utilizar. + +El siguiente ejemplo configura una conexión de integración de ServiceNow. Puede seguir el mismo proceso general para las acciones de AWS compatibles, sujeto a los [requisitos adicionales de AWS](#aws-integration-connections). + +### 1. Configure los permisos de integración {#1-configure-integration-permissions} + +Para configurar el permiso {{< ui >}}Executor{{< /ui >}} para una instancia de integración de ServiceNow: + +1. En Datadog, navegue a [**Integrations**][4]. +1. Haga clic en la integración {{< ui >}}ServiceNow{{< /ui >}}. +1. Seleccione la instancia de ServiceNow que desea utilizar para ejecutar acciones. +1. Haga clic en {{< ui >}}Set Permissions{{< /ui >}}. + - Si ve un botón {{< ui >}}Request Edit Access{{< /ui >}} en lugar de un botón {{< ui >}}Set Permissions{{< /ui >}}, pídale al administrador de su organización de Datadog que lo agregue como Editor para la instancia. +1. Seleccione un usuario, equipo u organización y haga clic en {{< ui >}}Add{{< /ui >}}. +1. En {{< ui >}}People with access{{< /ui >}}, seleccione el permiso {{< ui >}}Executor{{< /ui >}}. +1. Haga clic en {{< ui >}}Save{{< /ui >}}. + +### 2. Agregue la integración a una acción {#2-add-the-integration-to-an-action} + +1. En [Workflow Automation][5], haga clic en el flujo de trabajo que desea editar. +1. Agregue una acción de ServiceNow. +1. En el panel de configuración, haga clic en el menú desplegable {{< ui >}}Connection{{< /ui >}} y desplácese hasta {{< ui >}}Existing ServiceNow Integrations{{< /ui >}}. +1. Seleccione la instancia de ServiceNow que configuró en el paso anterior. +1. Haga clic en {{< ui >}}Save{{< /ui >}}. + +## Conexiones de integración de AWS {#aws-integration-connections} + +Los flujos de trabajo y las acciones de Datadog pueden utilizar sus credenciales de integración de AWS de Datadog existentes para realizar operaciones de solo lectura en su entorno de AWS. Datadog utiliza las mismas credenciales de AWS que impulsan integraciones como el monitoreo de Amazon EC2, RDS y S3 para ejecutar de forma segura las acciones de solo lectura admitidas. + +Existen dos formas de ejecutar acciones de AWS en su entorno: + +- Utilice la integración de AWS de Datadog para ejecutar acciones de solo lectura permitidas bajo la política de [`ViewOnlyAccess` permisos][1]. +- Utilice una conexión de AWS personalizada vinculada a un rol de IAM de AWS dedicado con permisos específicos para operaciones no incluidas en los [`ViewOnlyAccess` permisos][1]. + +### Acciones de AWS admitidas {#supported-aws-actions} + +Algunos ejemplos incluyen: + +- Listar o describir recursos de AWS, como `ListECSClusters`, `DescribeInstances` y `GetBucketPolicy` +- Leer configuraciones o metadatos de servicios de AWS, como `GetFunctionConfiguration` y `ListSecrets` +- Inspeccionar etiquetas, métricas o registros de recursos + +Para otras acciones de AWS, utilice una [conexión dedicada][2] en su lugar. + +### Requisitos de AWS {#aws-requirements} + +Para ejecutar acciones con éxito con una conexión de integración de AWS: + +- El rol de IAM de integración de AWS configurado para la delegación de roles debe tener los permisos requeridos para las operaciones deseadas, tales como `ecs:ListClusters`. +- La acción seleccionada debe ser de solo lectura. Las acciones de escritura o mutación, tales como `Put*`, `Delete*` y `Update*`, no son compatibles y fallan al ejecutarse. +- El usuario, equipo u organización que ejecuta la acción debe tener el permiso {{< ui >}}Executor{{< /ui >}} explícito en la cuenta de integración de AWS en Datadog. + +
+La ejecución de acciones mediante la integración de AWS de Datadog solo está disponible para los usuarios que han configurado la integración de AWS de Datadog a través de delegación de roles. Además, aunque se permiten las operaciones bajo los permisos ViewOnlyAccess, es posible que el rol de IAM asociado con la integración de AWS de Datadog no tenga los permisos necesarios. Asegúrese de que el rol tenga los permisos correctos si encuentra problemas. +
+ +Antes de configurar una conexión de integración de AWS, asegúrese de que: + +- La integración de AWS esté activa para su cuenta de AWS de destino y Datadog no haya detectado ningún problema de integración. Si no ha configurado la integración de AWS, siga la [guía de configuración de la integración de AWS][6]. +- El rol de IAM asociado con la integración tenga los permisos para las operaciones requeridas, tales como `ecs:ListClusters`. +- Usted tenga acceso para editar los permisos de las cuentas de AWS que desea utilizar. + +Para configurar el permiso {{< ui >}}Executor{{< /ui >}} para una cuenta de integración de AWS, siga [los pasos de configuración](#1-configure-integration-permissions), seleccionando la integración {{< ui >}}Amazon Web Services{{< /ui >}} y la cuenta de AWS relevante en lugar de ServiceNow. + +Para agregar la integración de AWS a una acción: + +1. En [Workflow Automation][5], haga clic en el flujo de trabajo que desea editar. +1. Agregue una acción de AWS, tal como {{< ui >}}List ECS Clusters{{< /ui >}}. +1. En el panel de configuración, haga clic en el menú desplegable {{< ui >}}Connection{{< /ui >}} y desplácese hasta {{< ui >}}Existing AWS Integrations{{< /ui >}}. +1. Seleccione la cuenta de AWS que configuró. +1. Haga clic en {{< ui >}}Save{{< /ui >}}. + +[1]: https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ViewOnlyAccess.html +[2]: /es/actions/connections/#create-a-connection +[4]: https://app.datadoghq.com/integrations +[5]: https://app.datadoghq.com/workflow +[6]: /es/integrations/amazon-web-services/#setup \ No newline at end of file diff --git a/hugo/content/es/actions/private_actions/_index.md b/hugo/content/es/actions/private_actions/_index.md index e04ca7a78b1..9cb15cec6b3 100644 --- a/hugo/content/es/actions/private_actions/_index.md +++ b/hugo/content/es/actions/private_actions/_index.md @@ -2,80 +2,70 @@ aliases: - /es/service_management/workflows/private_actions/ - /es/service_management/app_builder/private_actions/ +description: Ejecute acciones contra servicios en su red privada desde productos de + Datadog, utilizando un ejecutor de acciones privado como capa de ejecución y autorización + para acciones locales. disable_toc: false further_reading: -- link: service_management/app_builder/connections +- link: actions/private_actions/set_up_agent_based tag: Documentación - text: Conexiones de App Builder -- link: service_management/workflows/connections + text: Configure un ejecutor de acciones privado +- link: actions/private_actions/enroll_runner tag: Documentación - text: Conexiones de flujos de trabajo -- link: actions/private_actions/use_private_actions + text: Inscripción y propiedad +- link: /actions/private_actions/authorize_private_actions/ tag: Documentación - text: Uso de las acciones privadas -- link: actions/private_actions/private_action_credentials - tag: Documentación - text: Gestión de credenciales de acciones privadas -title: Información general de las acciones privadas + text: Autorizar Private Actions +title: Private Actions --- +## Descripción general {#overview} -{{< callout url="https://www.datadoghq.com/product-preview/private-actions/" btn_hidden="false" header="Únete a la vista previa">}} -Las acciones privadas están en vista previa. Utiliza este formulario para solicitar acceso hoy mismo. -{{< /callout >}} - -Las acciones privadas permiten a tus flujos de trabajo y aplicaciones Datadog interactuar con servicios alojados en tu red privada sin exponerlos a la Internet pública. Para utilizar acciones privadas, debes instalar un ejecutor de acciones privadas en un host de tu red utilizando Docker o [Kubernetes][1] y emparejar el ejecutor con una [conexión][2]. - -Cuando inicias el ejecutor por primera vez, éste genera una clave privada para autenticarse con los servidores de Datadog. Esta clave privada nunca es accesible por Datadog y te garantiza un acceso exclusivo. Datadog utiliza una clave pública derivada de la clave privada como medio para autenticar a determinados ejecutores. - -## Modos - -Un ejecutor de acciones privadas puede utilizarse con App Builder, Automatización de flujos de trabajo o ambos. - -A continuación se presenta un esquema general de las acciones privadas: - -{{< img src="actions/private_actions/private_action_runner_-_diagram_general.png" alt="Diagrama de información general que muestra cómo las acciones privadas interactúan con Datadog y el navegador del usuario" style="width:90%;" >}} - -### Diferencias de modo - -La siguiente tabla explica algunas distinciones entre los modos App Builder y Flujos de trabajo, incluidos sus mecanismos de activación y modelos operativos. - -| Distinción | Modo App Builder | Modo Flujos de trabajo | -|--------------------------| -----------------|----------------| -| **Mecanismo
activador** | Impulsado por el ser humano: cada acción se inicia mediante la interacción del usuario con una aplicación. | Puede funcionar automáticamente sin intervención humana directa | -| **Modelo
activador** | Modelo push: las acciones se activan accediendo directamente a una URL en el ejecutor | Modelo pull: comprueba periódicamente checks las tareas a ejecutar | -| **Manejo
datos** | Guarda los datos en tu entorno privado y no los envía a Datadog | Informa del resultado de las ejecuciones de acciones privadas a Datadog | +Private Actions le permiten ejecutar acciones contra servicios en su red privada, como clústeres de Kubernetes, hosts internos, bases de datos y API internas, sin exponer esos servicios a la internet pública. Usted las ejecuta a través de un ejecutor de acciones privado que despliega en su entorno, ya sea dentro del Datadog Agent (recomendado) o como un ejecutor independiente. Los productos de Datadog que utilizan Private Actions incluyen Workflow Automation, App Builder, Datadog MCP y Bits AI investigations. -La diferencia en los modelos puede dar lugar a latencias variables. El modelo push del modo App Builder puede dar lugar a respuestas más inmediatas, mientras que el modelo pull del modo Flujos de trabajo puede introducir retrasos en función de la frecuencia de sondeo. +Private Actions dependen de dos capas: -### Modo App Builder +- [**El ejecutor de acciones privado**](#private-action-runner) ejecuta las acciones. Se ejecuta en su red, recibe tareas de acción de Datadog, ejecuta cada tarea contra el servicio de destino y devuelve el resultado a Datadog. +- [**La capa de autorización**](#authorization-models) se gestiona en Datadog. Define qué usuarios y productos pueden ejecutar qué acciones en qué ejecutores, y concede o deniega cada acción antes de que llegue a un ejecutor. Las acciones que un ejecutor tiene permitido realizar también están restringidas en el lado del Datadog Agent, mediante la lista de permitidos de acciones en la configuración del Datadog Agent (`datadog.yaml`). -Cuando tu ejecutor de acciones privadas está en modo App Builder, las consultas que llaman a tus servicios privados se envían directamente desde el navegador del usuario al ejecutor de acciones privadas, que representa las solicitudes a tus servicios. Cuando el ejecutor está en modo App Builder, tus datos nunca ingresan a Datadog, sólo se comunica con Datadog a efectos de inscripción y autenticación. +## Ejecutor de acciones privado {#private-action-runner} -En el siguiente diagrama, **App Management** se refiere a las acciones backend de App Builder que no están relacionadas con el ejecutor de acciones privadas, como la eliminación de una aplicación. +El ejecutor de acciones privado es el componente que usted despliega en su entorno para ejecutar Private Actions. Abre una conexión saliente hacia Datadog, sondea para obtener tareas de acción, ejecuta cada tarea contra el servicio de destino y devuelve el resultado. -{{< img src="actions/private_actions/private_action_runner_-_diagram_app_builder.png" alt="Diagrama de información general que muestra cómo funcionan las acciones privadas en el modo App Builder, incluida la autenticación" style="width:90%;" >}} +El ejecutor de acciones privado está disponible en dos formas: un ejecutor independiente que usted despliega y gestiona por su cuenta, o un ejecutor integrado en el Datadog Agent. -#### Autenticación +| | Ejecutor en el Datadog Agent | Ejecutor independiente | +|---|---|---| +| **Qué es** | Un componente del Datadog Agent, que se activa con un solo indicador de configuración. | Un contenedor dedicado que puede instalar y administrar independientemente del Datadog Agent. | +| **Ideal cuando** | Ya ejecuta el Datadog Agent y desea administrar el ejecutor a través del ciclo de vida del Datadog Agent. | Necesita una integración que aún no está disponible en el Datadog Agent. | +| **Estado** | Recomendado para nuevas implementaciones. | Soportado (modo de mantenimiento). | -Para garantizar una comunicación segura, el frontend Datadog envía un token limitado de un solo uso con cada solicitud, que el ejecutor valida utilizando una clave privada. Este mecanismo garantiza que tus datos permanezcan dentro de tu red y no ingresen a Datadog, al tiempo que mantiene la integridad y seguridad de tus acciones privadas. +
Datadog recomienda ejecutar el ejecutor de acciones privadas en el Datadog Agent
-#### Nombre de host del ejecutor +Para conocer los pasos de instalación, consulte [Set up a private action runner in the Datadog Agent][1] o [Set up a standalone runner][2]. -En el modo App Builder, el navegador del usuario habla directamente con tu ejecutor de acciones privadas. Como resultado, debes especificar un nombre de dominio personalizado que apunte a tu ejecutor. Para configurar tu dominio, apunta un registro `A` o `CNAME` al ingreso de tu red. Tu ingreso debe ser capaz de terminar solicitudes HTTPS y reenviarlas al contenedor del ejecutor en el puerto 9016. El dominio y el ingreso no necesitan ser accesibles a la Internet pública. El registro `A` o `CNAME` puede apuntar, por ejemplo, a un balanceador de carga que sólo sea accesible a través de la VPN de tu empresa. +## Modelos de autorización {#authorization-models} -### Modo Automatización de flujos de trabajo +Datadog ofrece dos modelos de autorización. El modelo que utiliza un ejecutor se establece cuando se inscribe el ejecutor y depende de la propiedad del mismo. Para obtener más información, consulte [Enrollment and ownership][3]. -Si el ejecutor de acciones privadas se ejecuta en modo de sólo Flujos de trabajo, no es necesario realizar ninguna configuración más allá de la inscripción inicial. El ejecutor de acciones privadas sondea continuamente las tareas de tu cuenta Datadog, las ejecuta interactuando con tu servicio interno e informa del resultado a Datadog. +- **Las políticas de ejecución** se aplican a los ejecutores en el Datadog Agent y están diseñadas para administrar el acceso a escala. En lugar de crear una conexión independiente para cada integración en cada ejecutor, usted utiliza etiquetas del Datadog Agent para dirigirse a uno o más conjuntos de ejecutores. Las políticas de ejecución también le brindan un control detallado: puede permitir o denegar acciones específicas o conjuntos de acciones, y aplicar alcances específicos de la integración, como los espacios de nombres de Kubernetes de destino para una acción de Kubernetes. +- **Las conexiones** están disponibles tanto para el ejecutor en el Datadog Agent como para el ejecutor independiente. Se pueden adjuntar a un máximo de un solo ejecutor. Una conexión puede almacenar credenciales para un servicio. -{{< img src="actions/private_actions/private_action_runner_-_diagram_workflow.png" alt="Diagrama de información general que muestra cómo funcionan las acciones privadas en el modo Automatización de flujos de trabajo" style="width:90%;" >}} +Para comparar los dos modelos y decidir cuál se aplica a su ejecutor, consulte [Authorize private actions][4]. -### Ambos +## Próximos pasos {#next-steps} -Cuando se selecciona la opción de utilizar ambos modos, el ejecutor ajusta dinámicamente el modo que utiliza en función del tipo de solicitud que recibe. Esto garantiza un funcionamiento sin problemas, tanto si el ejecutor gestiona solicitudes de aplicaciones, ejecuciones de Automatización de flujos de trabajo o una combinación de ambos. +- **¿Es nuevo en Private Actions?**: Siga [Getting started with private actions][7] para implementar un ejecutor y ejecutar su primera acción. +- **Tiene un ejecutor en el Datadog Agent y desea control de acceso para toda la flota**: autorícelo con [Execution Policies][5]. +- **Tiene un ejecutor en el Datadog Agent o un ejecutor independiente y desea autorizar un solo ejecutor**: autorícelo con [Connections][6]. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://github.com/DataDog/helm-charts/tree/main/charts/private-action-runner -[2]: /es/service_management/workflows/connections/ \ No newline at end of file +[1]: /es/actions/private_actions/set_up_agent_based/ +[2]: /es/actions/private_actions/set_up_standalone/ +[3]: /es/actions/private_actions/enroll_runner/ +[4]: /es/actions/private_actions/authorize_private_actions/ +[5]: /es/actions/private_actions/execution_policies/ +[6]: /es/actions/connections/ +[7]: /es/actions/private_actions/getting_started/ \ No newline at end of file diff --git a/hugo/content/es/agent/configuration/network.md b/hugo/content/es/agent/configuration/network.md index a022fcac985..58c05b9b1a3 100644 --- a/hugo/content/es/agent/configuration/network.md +++ b/hugo/content/es/agent/configuration/network.md @@ -15,29 +15,29 @@ aliases: further_reading: - link: /getting_started/site tag: Documentación - text: Aprenda sobre el sitio de Datadog + text: Obtenga información sobre el sitio de Datadog - link: /logs/ tag: Documentación - text: Recolecte sus registros + text: Recopile sus registros - link: /infrastructure/process tag: Documentación - text: Recolecte sus procesos + text: Recopile sus procesos - link: tracing tag: Documentación - text: Recolecte sus trazas + text: Recopile sus trazas title: Tráfico de red --- -## Resumen {#overview} +## Descripción general {#overview}
-El tráfico siempre es iniciado por el agente a Datadog. No se inician sesiones desde Datadog al agente. +El tráfico siempre es iniciado por el Agent hacia Datadog. Nunca se inician sesiones desde Datadog hacia el Agent.
-Todo el tráfico del agente se envía a través de SSL. El destino depende del servicio y sitio de Datadog. Para ver destinos basados en su [sitio de Datadog][11], haga clic en el selector {{< ui >}}DATADOG SITE{{< /ui >}} a la derecha. +Todo el tráfico del Agent se envía a través de SSL. El destino depende del servicio y el sitio de Datadog. Para ver los destinos según su [sitio de Datadog][11], haga clic en el selector {{< ui >}}DATADOG SITE{{< /ui >}} a la derecha. ## Instalación {#installation} -Agregue los siguientes dominios a su lista de inclusión para permitir la instalación del Agente: +Agregue los siguientes dominios a su lista de inclusión para permitir la instalación del Agent: - `install.datadoghq.com` - `yum.datadoghq.com` @@ -47,7 +47,7 @@ Agregue los siguientes dominios a su lista de inclusión para permitir la instal ## Destinos {#destinations}
-A partir de la versión 7.67.0, el agente convierte los sitios de Datadog en nombres de dominio completamente calificados (agregando un punto al final del dominio) para reducir el número de consultas DNS. +A partir de la versión 7.67.0, el Agent convierte los sitios de Datadog en nombres de dominio totalmente calificados (agregando un punto al final del dominio) para reducir la cantidad de consultas DNS. Por ejemplo, envía cargas útiles de APM a trace.agent.datadoghq.com..
Este comportamiento se puede desactivar en la versión 7.72.0 y posteriores configurando convert_dd_site_fqdn.enabled a false en la configuración, o con la variable de entorno DD_CONVERT_DD_SITE_FQDN_ENABLED=false.
@@ -56,13 +56,13 @@ Este comportamiento se puede desactivar en la versión 7.72.0 y posteriores conf : `trace.agent.`{{< region-param key="dd_site" code="true" >}}
`instrumentation-telemetry-intake.`{{< region-param key="dd_site" code="true" >}} -[Observabilidad LLM][23] +[Observabilidad de LLM][23] : `llmobs-intake.`{{< region-param key="dd_site" code="true" >}} -[Imágenes de Contenedores][13] +[Container Images][13] : `contimage-intake.`{{< region-param key="dd_site" code="true" >}} -[Contenedores en Vivo][3], [Live Processes][4], [Cloud Network Monitoring][24], [Universal Service Monitoring][25] +[Live Containers][3], [Live Processes][4], [Cloud Network Monitoring][24], [Universal Service Monitoring][25] : `process.`{{< region-param key="dd_site" code="true" >}} [Network Device Monitoring][10] @@ -72,7 +72,7 @@ Este comportamiento se puede desactivar en la versión 7.72.0 y posteriores conf [Network Path][14] : `netpath-intake.`{{< region-param key="dd_site" code="true" >}}
-En la versión 7.75+ del agente, Network Path contacta servicios externos a través de HTTPS para resolver la IP pública del host de origen. Esto es opcional y Network Path funciona sin ello, pero si su red restringe el tráfico saliente y desea la resolución de la IP pública de origen, agregue lo siguiente a su lista de inclusión: `icanhazip.com`, `ipinfo.io`, `checkip.amazonaws.com`, `api.ipify.org`, `whatismyip.akamai.com`. Consulte [Network Path Setup][33] para más detalles. +En el Agent v7.75+, Network Path se comunica con servicios externos a través de HTTPS para resolver la IP pública del servidor fuente. Esto es opcional y Network Path funciona sin ello, pero si su red restringe el tráfico saliente y desea la resolución de IP pública del servidor fuente, agregue lo siguiente a su lista de inclusión: `icanhazip.com`, `ipinfo.io`, `checkip.amazonaws.com`, `api.ipify.org`, `whatismyip.akamai.com`. Consulte [Network Path Setup][33] para obtener más detalles. [Orchestrator][5] : `orchestrator.`{{< region-param key="dd_site" code="true" >}}
@@ -88,12 +88,12 @@ En la versión 7.75+ del agente, Network Path contacta servicios externos a trav : `sbom-intake.`{{< region-param key="dd_site" code="true" >}} [Synthetic Monitoring Private Locations][8] -: Trabajador Sintético v1.5.0 o posterior: `intake.synthetics.`{{< region-param key="dd_site" code="true" >}} es el único punto de conexión que necesita configurar.
-Resultados de pruebas de API para el Trabajador Sintético > v0.1.6: `intake.synthetics.`{{< region-param key="dd_site" code="true" >}}
-Resultados de pruebas de navegador para el Trabajador Sintético > v0.2.0: `intake-v2.synthetics.`{{< region-param key="dd_site" code="true" >}}
-Resultados de pruebas de API para el Trabajador Sintético < v0.1.5: `api.`{{< region-param key="dd_site" code="true" >}} +: Synthetics Worker v1.5.0 o posterior: `intake.synthetics.`{{< region-param key="dd_site" code="true" >}} es el único punto de conexión que necesita configurar.
+Resultados de pruebas de API para Synthetics Worker > v0.1.6: `intake.synthetics.`{{< region-param key="dd_site" code="true" >}}
+Resultados de la prueba de navegador para Synthetics Worker > v0.2.0: `intake-v2.synthetics.`{{< region-param key="dd_site" code="true" >}}
+Resultados de pruebas de API para Synthetics Worker < v0.1.5: `api.`{{< region-param key="dd_site" code="true" >}} -{{% site-region region="us,eu,us3,us5,ap1,ap2" %}} +{{% site-region region="us,eu,us3,us5,ap1,ap2,uk1" %}} [Remote Configuration][101] : `config.`{{< region-param key="dd_site" code="true" >}} @@ -102,31 +102,36 @@ Resultados de pruebas de API para el Trabajador Sintético < v0.1.5: `api.`{{< r : `dbm-metrics-intake.`{{< region-param key="dd_site" code="true" >}}
`dbquery-intake.`{{< region-param key="dd_site" code="true" >}} +[End User Device Monitoring][103] +: `softinv-intake.`{{< region-param key="dd_site" code="true" >}}
+`eudm-intake.`{{< region-param key="dd_site" code="true" >}} + [101]: /es/remote_configuration [102]: /es/database_monitoring/ +[103]: /es/infrastructure/end_user_device_monitoring/ {{% /site-region %}} {{% logs-tcp-disclaimer %}} -[Logs][30] & [HIPAA Logs][31] +[Logs][30] y [logs de HIPAA][31] : (Obsoleto) TCP: {{< region-param key=tcp_endpoint code="true" >}}
HTTP: {{< region-param key=agent_http_endpoint code="true" >}}
-Otro: Ver [logs endpoints][32] +Otro: Consulte [logs endpoints][32] -[HIPAA Logs Legacy][31] (Deprecated, TCP not supported) +[HIPAA logs legacy][31] (Obsoleto, TCP no compatible) : {{< region-param key=hipaa_logs_legacy code="true" >}} -[Metrics][26], [Service Checks][27], [Events][28], y otros metadatos del Agente +[Metrics][26], [Service Checks][27], [Events][28] y otros metadatos del Agent : `-app.agent.`{{< region-param key="dd_site" code="true" >}}
-Por ejemplo, el Agente v7.31.0 reporta a `7-31-0-app.agent.`{{< region-param key="dd_site" code="true" >}}. Debe agregar `*.agent.`{{< region-param key="dd_site" code="true" >}} a su lista de inclusión en su(s) firewall(s).
-Desde la versión 6.1.0, el Agente también consulta la API de Datadog para proporcionar funcionalidades no críticas (por ejemplo, mostrar la validez de la clave de API configurada):
-Agente v7.18.0 o 6.18.0 y versiones posteriores: `api.`{{< region-param key="dd_site" code="true" >}}
-Agente < v7.18.0 o 6.18.0: `app.`{{< region-param key="dd_site" code="true" >}} +Por ejemplo, el Agent v7.31.0 reporta a `7-31-0-app.agent.`{{< region-param key="dd_site" code="true" >}}. Debe agregar `*.agent.`{{< region-param key="dd_site" code="true" >}} a su lista de inclusión en su(s) firewall(s).
+Desde la v6.1.0, el Agent también consulta la API de Datadog para proporcionar funcionalidad no crítica (por ejemplo, mostrar la validez de la clave de API configurada):
+Agent v7.18.0 o 6.18.0 y posteriores: `api.`{{< region-param key="dd_site" code="true" >}}
+Agent < v7.18.0 o 6.18.0: `app.`{{< region-param key="dd_site" code="true" >}} [Agent flare][12] : `-flare.agent.`{{< region-param key="dd_site" code="true" >}}
-Por ejemplo, el Agente v7.31.0 envía datos de Agent flare a `7-31-0-flare.agent.`{{< region-param key="dd_site" code="true" >}}. Debe agregar `*.agent.`{{< region-param key="dd_site" code="true" >}} a su lista de inclusión en su(s) firewall(s).
+Por ejemplo, el Agent v7.31.0 envía datos de flare a `7-31-0-flare.agent.`{{< region-param key="dd_site" code="true" >}}. Debe agregar `*.agent.`{{< region-param key="dd_site" code="true" >}} a su lista de inclusión en su(s) firewall(s).
### Direcciones IP estáticas {#static-ip-addresses} @@ -159,35 +164,36 @@ La información está estructurada como JSON siguiendo este esquema: } {{< /code-block >}} -Cada sección tiene un endpoint dedicado, por ejemplo: +Cada sección tiene un punto de conexión dedicado, por ejemplo: -- `https://ip-ranges.{{< region-param key="dd_site" >}}/logs.json` para las IPs utilizadas para recibir datos de registros a través de TCP. -- `https://ip-ranges.{{< region-param key="dd_site" >}}/apm.json` para las IPs utilizadas para recibir datos de APM. +- `https://ip-ranges.{{< region-param key="dd_site" >}}/logs.json` para las IP utilizadas para recibir datos de registros a través de TCP. +- `https://ip-ranges.{{< region-param key="dd_site" >}}/apm.json` para las IP utilizadas para recibir datos de APM. ### Inclusión {#inclusion} -Agregue todos los `ip-ranges` a su lista de inclusión. Aunque solo un subconjunto está activo en un momento dado, hay variaciones a lo largo del tiempo dentro de todo el conjunto debido a la operación y mantenimiento regular de la red. +Agregue todas las `ip-ranges` a su lista de inclusión. Aunque solo un subconjunto está activo en un momento dado, existen variaciones a lo largo del tiempo dentro del conjunto completo debido a la operación y el mantenimiento regulares de la red. ## Puertos abiertos {#open-ports}
Todo el tráfico saliente se envía a través de SSL mediante TCP o UDP.

-Asegúrese de que el Agente solo sea accesible por sus aplicaciones o fuentes de red de confianza utilizando una regla de firewall o una restricción de red similar. El acceso no confiable puede permitir que actores maliciosos realicen varias acciones invasivas, incluyendo, pero no limitándose a, escribir trazas y métricas en su cuenta de Datadog, o obtener información sobre su configuración y servicios. +Asegúrese de que el Agent solo sea accesible por sus aplicaciones o fuentes de red confiables mediante una regla de firewall o una restricción de red similar. El acceso no confiable puede permitir que actores malintencionados realicen varias acciones invasivas, incluyendo, entre otras, escribir trazas y métricas en su cuenta de Datadog, u obtener información sobre su configuración y servicios.
-Abra los siguientes puertos para beneficiarse de todas las funcionalidades del **Agente**: +Abra los siguientes puertos para beneficiarse de todas las funcionalidades del **Agent**: -#### Saliente {#outbound} +#### Outbound {#outbound} {{% site-region region="us,eu" %}} -| Producto/Funcionalidad | Puerto | Protocolo | Descripción | +| Product/Functionality | Port | Protocol | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Agente
APM
Contenedores
Live Processes
[Metrics]
Cloud Network Monitoring
Universal Service Monitoring| 443| TCP| La mayoría de los datos del Agente utilizan el puerto 443.| -| [Custom Agent Autoscaling][22]| 8443| TCP| | -| Recolección de registros | {{< region-param key=web_integrations_port >}} | (Obsoleto) TCP | Registro a través de TCP.
**Nota**: La recolección de registros por TCP **no está soportada**. Datadog **no proporciona garantías de entrega o confiabilidad** al usar TCP, y los datos de registro pueden perderse sin previo aviso. Para una ingestión confiable, utilice el punto de conexión HTTP, un Agente oficial de Datadog o una integración de reenvío en su lugar. Para otros tipos de conexión, consulte [logs endpoints][21]. | -| NTP | 123 | UDP | Network Time Protocol (NTP). Consulte [objetivos NTP predeterminados][20].
Para información sobre la solución de problemas de NTP, consulte [problemas de NTP][19]. | +| Agent
APM
Containers
Live Processes
Metrics
Cloud Network Monitoring
Universal Service Monitoring | 443 | TCP | La mayoría de los datos del Agent utilizan el puerto 443. | +| [Custom Agent Autoscaling][22] | 8443 | TCP | | +| Log collection | {{< region-param key=web_integrations_port >}} | (Obsoleto) TCP | Registro a través de TCP.
**Nota**: La recopilación de registros TCP **no es compatible**. Datadog **no ofrece garantías de entrega ni de confiabilidad** al usar TCP, y los datos de registro pueden perderse sin previo aviso. Para una ingesta confiable, utilice el punto de conexión de ingesta HTTP, un Datadog Agent oficial o una integración de reenvío. Para otros tipos de conexión, consulte [logs endpoints][21]. | +| NTP | 123 | UDP | Network Time Protocol (NTP). Consulte [default NTP targets][20].
Para obtener información sobre la resolución de problemas de NTP, consulte [NTP issues][19]. | +| Connectivity test | 8042 | TCP | Remote configuration connectivity test.
**Note**: this is a telemetry endpoint containing no customer data for protocol development, and is only used when [Remote Config][101] is enabled. [19]: /es/agent/faq/network-time-protocol-ntp-offset-issues/ [20]: /es/integrations/ntp/#overview @@ -196,36 +202,36 @@ Abra los siguientes puertos para beneficiarse de todas las funcionalidades del * {{% /site-region %}} -{{% site-region region="us3,us5,gov,gov2,ap1,ap2" %}} +{{% site-region region="us3,us5,gov,gov2,ap1,ap2,uk1" %}} -| Producto/Funcionalidad | Puerto | Protocolo | Descripción | +| Product/Functionality | Port | Protocol | Description | | ------------------------------------------------------------------------------------------------------------------- | ---- | -------- | ---------------------------------------------------------------------------------------------------------------------------- | -| Agente
APM
Contenedores
Live Processes
[Metrics]
Cloud Network Monitoring
Universal Service Monitoring| 443| TCP| La mayoría de los datos del Agente utilizan el puerto 443.| -| NTP | 123 | UDP | Network Time Protocol (NTP). Vea [objetivos NTP predeterminados][20].
Para información sobre la solución de problemas de NTP, consulte [problemas de NTP][19]. | +| Agent
APM
Containers
Live Processes
Metrics
Cloud Network Monitoring
Universal Service Monitoring | 443 | TCP | Most Agent data uses port 443. | +| NTP | 123 | UDP | Network Time Protocol (NTP). Consulte los [objetivos NTP predeterminados][20].
Para obtener información sobre la solución de problemas de NTP, consulte [problemas de NTP][19]. | [19]: /es/agent/faq/network-time-protocol-ntp-offset-issues/ [20]: /es/integrations/ntp/#overview {{% /site-region %}} -#### Entrante {#inbound} +#### Entrada {#inbound} -Utilizado para servicios del Agent que se comunican entre sí localmente dentro del servidor solamente. +Se utiliza únicamente para que los servicios del Agent se comuniquen entre sí localmente dentro del servidor. | Producto/Funcionalidad | Puerto | Protocolo | Descripción | | ---------------------------- | ---- | -------- | ------------------------------------------------------------------------------------------------------------------------------ | -| [Interfaz gráfica del navegador del Agent][16] | 5002 | TCP | | -| Receptor APM | 8126 | TCP | Incluye traza y el Perfilador. | -| [DogStatsD][18] | 8125 | UDP | Puerto para DogStatsD a menos que `dogstatsd_non_local_traffic` esté configurado como verdadero. Este puerto está disponible en localhost IPv4: `127.0.0.1`. | -| servidor go_expvar (APM) | 5012 | TCP | Para más información, consulte [la documentación de integración de go_expar][15]. | -| servidor de integración go_expvar | 5000 | TCP | Para más información, consulte [la documentación de integración de go_expar][15]. | -| API IPC | 5001 | TCP | Puerto utilizado para la Comunicación entre Procesos (IPC). | -| Depuración del Agent de Proceso | 6062 | TCP | Puntos de conexión de depuración para el Agent de Proceso. | -| Tiempo de ejecución del Agent de Proceso | 6162 | TCP | Configuraciones de tiempo de ejecución para el Agent de Proceso. | +| [GUI del navegador del Agent][16] | 5002 | TCP | | +| Receptor de APM | 8126 | TCP | Incluye la traza y el Profiler. | +| [DogStatsD][18] | 8125 | UDP | Puerto para DogStatsD a menos que `dogstatsd_non_local_traffic` esté configurado como true. Este puerto está disponible en localhost IPv4: `127.0.0.1`. | +| servidor go_expvar (APM) | 5012 | TCP | Para obtener más información, consulte [la documentación de integración de go_expvar][15]. | +| servidor de integración go_expvar | 5000 | TCP | Para obtener más información, consulte [la documentación de integración de go_expvar][15]. | +| API de IPC | 5001 | TCP | Puerto utilizado para la comunicación entre procesos (IPC). | +| Depuración del Agent de procesos | 6062 | TCP | Endpoints de depuración para el Agent de procesos. | +| Tiempo de ejecución del Agent de procesos | 6162 | TCP | Configuración del tiempo de ejecución para el Agent de procesos. | ## Configurar puertos {#configure-ports} -Si necesita cambiar un puerto de entrada porque el puerto predeterminado ya está en uso por un servicio existente en su red, edite el archivo de configuración `datadog.yaml`. Puede encontrar la mayoría de los puertos en la sección **Configuración Avanzada** del archivo: +Si necesita cambiar un puerto de entrada porque el puerto predeterminado ya está siendo utilizado por un servicio existente en su red, edite el `datadog.yaml` archivo de configuración. Puede encontrar la mayoría de los puertos en la sección **Configuración avanzada** del archivo: {{< code-block lang="yaml" filename="datadog.yaml" disable_copy="true" collapsible="true" >}} ## @param expvar_port - integer - optional - default: 5000 @@ -253,7 +259,7 @@ Si necesita cambiar un puerto de entrada porque el puerto predeterminado ya est {{< /code-block >}} -El receptor APM y los puertos de DogStatsD se encuentran en las secciones **Configuración de Recolección de Trazas** y **Configuración de DogStatsD** del archivo de configuración `datadog.yaml`, respectivamente: +Los puertos del receptor de APM y de DogStatsD se encuentran en las secciones **Configuración de la recopilación de trazas** y **Configuración de DogStatsD** del archivo de configuración `datadog.yaml`, respectivamente: {{< code-block lang="yaml" filename="datadog.yaml" disable_copy="true" collapsible="true" >}} ## @param dogstatsd_port - integer - optional - default: 8125 @@ -273,38 +279,38 @@ El receptor APM y los puertos de DogStatsD se encuentran en las secciones **Conf # receiver_port: 8126 {{< /code-block >}} -
Si cambia el valor del puerto de DogStatsD o del puerto del receptor APM aquí, también debe cambiar la configuración del SDK de Datadog para el puerto correspondiente. Consulte la información sobre la configuración de puertos en la documentación de Configuración de la Biblioteca para su lenguaje.
+
Si cambia el valor del puerto de DogStatsD o del puerto del receptor de APM aquí, también debe cambiar la configuración del SDK de Datadog para el puerto correspondiente. Consulte la información sobre la configuración de puertos en la documentación de configuración de la biblioteca para su lenguaje.
-## Usando proxies {#using-proxies} +## Uso de proxies{#using-proxies} -Para una guía de configuración detallada sobre la configuración de proxies, consulte [Agent Proxy Configuration][9]. +Para obtener una guía de configuración detallada sobre la configuración de proxy, consulte [Configuración de proxy del Agent][9]. -## Almacenamiento de datos {#data-buffering} +## Almacenamiento de datos en búfer{#data-buffering} -Si la red se vuelve no disponible, el Agent almacena las métricas en memoria. -El uso máximo de memoria para almacenar las métricas está definido por la configuración `forwarder_retry_queue_payloads_max_size`. Cuando se alcanza este límite, las métricas se descartan. +Si la red deja de estar disponible, el Agent almacena las métricas en memoria. +El uso máximo de memoria para almacenar las métricas se define mediante el `forwarder_retry_queue_payloads_max_size` ajuste de configuración. Cuando se alcanza este límite, las métricas se descartan. -El Agent v7.27.0 o posterior almacena las métricas en disco cuando se alcanza el límite de memoria. Habilite esta capacidad configurando `forwarder_storage_max_size_in_bytes` a un valor positivo que indique la cantidad máxima de espacio de almacenamiento, en bytes, que el Agent puede usar para almacenar las métricas en disco. +El Agent v7.27.0 o posterior almacena las métricas en disco cuando se alcanza el límite de memoria. Habilite esta capacidad estableciendo `forwarder_storage_max_size_in_bytes` en un valor positivo que indique la cantidad máxima de espacio de almacenamiento, en bytes, que el Agent puede usar para almacenar las métricas en disco. -Las métricas se almacenan en la carpeta definida por la configuración `forwarder_storage_path`, que por defecto es `/opt/datadog-agent/run/transactions_to_retry` en sistemas Unix, y `C:\ProgramData\Datadog\run\transactions_to_retry` en Windows. +Las métricas se almacenan en la carpeta definida por el ajuste `forwarder_storage_path`, que es de forma predeterminada `/opt/datadog-agent/run/transactions_to_retry` en sistemas Unix y `C:\ProgramData\Datadog\run\transactions_to_retry` en Windows. -Para evitar quedarse sin espacio de almacenamiento, el Agent almacena las métricas en disco solo si el espacio total de almacenamiento utilizado es inferior al 80 por ciento. Este límite está definido por la configuración `forwarder_storage_max_disk_ratio`. +Para evitar quedarse sin espacio de almacenamiento, el Agent almacena las métricas en disco solo si el espacio de almacenamiento total utilizado es inferior al 80 por ciento. Este límite se define mediante el `forwarder_storage_max_disk_ratio` ajuste. -## Instalando el Datadog Operator {#installing-the-datadog-operator} +## Installing the Datadog Operator {#installing-the-datadog-operator} -Si está instalando el Datadog Operator en un entorno de Kubernetes con conectividad limitada, necesita permitir los siguientes puntos de conexión para el puerto TCP 443, según su registro: +Si está instalando el Datadog Operator en un entorno de Kubernetes con conectividad limitada, debe incluir en la lista de permitidos los siguientes puntos de conexión para el puerto TCP 443, según su registro: - `registry.datadoghq.com` (Datadog Container Registry) - `us-docker.pkg.dev/datadog-prod/public-images` (puede recibir redirecciones de `registry.datadoghq.com`) -- `gcr.io/datadoghq` (GCR EE. UU.) -- `eu.gcr.io/datadoghq` (GCR Europa) +- `gcr.io/datadoghq` (GCR US) +- `eu.gcr.io/datadoghq` (GCR Europe) - `asia.gcr.io/datadoghq` (GCR Asia) - `datadoghq.azurecr.io` (Azure) - `public.ecr.aws/datadog` (AWS) - `docker.io/datadog` (DockerHub) -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -317,9 +323,9 @@ Si está instalando el Datadog Operator en un entorno de Kubernetes con conectiv [7]: /es/profiler/ [8]: /es/synthetics/private_locations [9]: /es/agent/configuration/proxy/ -[10]: /es/network_monitoring/devices -[11]: /es/getting_started/site/ -[12]: /es/agent/troubleshooting/send_a_flare +[10]: /es/network_monitoring/devices Producto/Funcionalidad Puerto Protocolo Descripción +[11]: /es/getting_started/site/ Agent APM Contenedores Procesos en vivo Métricas Monitoreo de red en la nube Monitoreo de servicio universal 443 TCP La mayoría de los datos del Agent utilizan el puerto 443. +[12]: /es/agent/troubleshooting/send_a_flare NTP 123 UDP Protocolo de tiempo de red (NTP). [13]: /es/infrastructure/containers/container_images [14]: /es/network_monitoring/network_path/ [15]: /es/integrations/go_expvar/ diff --git a/hugo/content/es/api/latest/agent-observability/create-a-new-agent-observability-prompt-version/index.md b/hugo/content/es/api/latest/agent-observability/create-a-new-agent-observability-prompt-version/index.md new file mode 100644 index 00000000000..3bb05b02da0 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/create-a-new-agent-observability-prompt-version/index.md @@ -0,0 +1,3 @@ +--- +title: Cree una nueva versión del prompt de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/delete-agent-observability-dataset-records/index.md b/hugo/content/es/api/latest/agent-observability/delete-agent-observability-dataset-records/index.md new file mode 100644 index 00000000000..cf77cece0e1 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/delete-agent-observability-dataset-records/index.md @@ -0,0 +1,3 @@ +--- +title: Eliminar registros del conjunto de datos de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/list-agent-observability-experiments/index.md b/hugo/content/es/api/latest/agent-observability/list-agent-observability-experiments/index.md new file mode 100644 index 00000000000..69744ba25ff --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-agent-observability-experiments/index.md @@ -0,0 +1,3 @@ +--- +title: Liste los experimentos de Agent Observability +--- diff --git a/hugo/content/es/api/latest/agent-observability/list-patterns-runs/index.md b/hugo/content/es/api/latest/agent-observability/list-patterns-runs/index.md new file mode 100644 index 00000000000..1da1f69d443 --- /dev/null +++ b/hugo/content/es/api/latest/agent-observability/list-patterns-runs/index.md @@ -0,0 +1,3 @@ +--- +title: Ejecuciones de patrones de la lista +--- diff --git a/hugo/content/es/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md b/hugo/content/es/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md new file mode 100644 index 00000000000..cf77cece0e1 --- /dev/null +++ b/hugo/content/es/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md @@ -0,0 +1,3 @@ +--- +title: Eliminar registros del conjunto de datos de Agent Observability +--- diff --git a/hugo/content/es/api/latest/llm-observability/delete-agent-observability-datasets/index.md b/hugo/content/es/api/latest/llm-observability/delete-agent-observability-datasets/index.md new file mode 100644 index 00000000000..97e84d98345 --- /dev/null +++ b/hugo/content/es/api/latest/llm-observability/delete-agent-observability-datasets/index.md @@ -0,0 +1,3 @@ +--- +title: Elimine conjuntos de datos de Agent Observability +--- diff --git a/hugo/content/es/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md b/hugo/content/es/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md new file mode 100644 index 00000000000..98b6c3669d4 --- /dev/null +++ b/hugo/content/es/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md @@ -0,0 +1,3 @@ +--- +title: Liste las colas de anotación de Agent Observability +--- diff --git a/hugo/content/es/api/latest/llm-observability/list-agent-observability-experiment-events-v2/index.md b/hugo/content/es/api/latest/llm-observability/list-agent-observability-experiment-events-v2/index.md new file mode 100644 index 00000000000..58d20457ce0 --- /dev/null +++ b/hugo/content/es/api/latest/llm-observability/list-agent-observability-experiment-events-v2/index.md @@ -0,0 +1,3 @@ +--- +title: Listar eventos del experimento de Agent Observability (v2) +--- diff --git a/hugo/content/es/api/latest/llm-observability/search-agent-observability-spans/index.md b/hugo/content/es/api/latest/llm-observability/search-agent-observability-spans/index.md new file mode 100644 index 00000000000..bf7c9cc6ab8 --- /dev/null +++ b/hugo/content/es/api/latest/llm-observability/search-agent-observability-spans/index.md @@ -0,0 +1,3 @@ +--- +title: Buscar spans de Agent Observability +--- diff --git a/hugo/content/es/api/latest/rum-teams-ownership/delete-a-teams-ownership-mapping/index.md b/hugo/content/es/api/latest/rum-teams-ownership/delete-a-teams-ownership-mapping/index.md new file mode 100644 index 00000000000..18eeeaddeb7 --- /dev/null +++ b/hugo/content/es/api/latest/rum-teams-ownership/delete-a-teams-ownership-mapping/index.md @@ -0,0 +1,3 @@ +--- +title: Elimine un mapeo de propiedad de equipos +--- diff --git a/hugo/content/es/api/latest/security-monitoring/delete-a-severity-modifier-rule/index.md b/hugo/content/es/api/latest/security-monitoring/delete-a-severity-modifier-rule/index.md new file mode 100644 index 00000000000..179b06ed6c9 --- /dev/null +++ b/hugo/content/es/api/latest/security-monitoring/delete-a-severity-modifier-rule/index.md @@ -0,0 +1,3 @@ +--- +title: Elimine una regla de modificador de severidad +--- diff --git a/hugo/content/es/api/latest/usage-metering/update-a-usage-quota/index.md b/hugo/content/es/api/latest/usage-metering/update-a-usage-quota/index.md new file mode 100644 index 00000000000..ac1c41c9d75 --- /dev/null +++ b/hugo/content/es/api/latest/usage-metering/update-a-usage-quota/index.md @@ -0,0 +1,3 @@ +--- +title: Actualizar una cuota de uso +--- diff --git a/hugo/content/es/cli/_index.md b/hugo/content/es/cli/_index.md index 4ca919b112c..125be8910ea 100644 --- a/hugo/content/es/cli/_index.md +++ b/hugo/content/es/cli/_index.md @@ -1,33 +1,33 @@ --- -description: Utiliza la interfaz de línea de comandos Pup para interactuar con las - API de Datadog desde el terminal o flujos de trabajo de agentes de IA. +description: Utilice la interfaz de línea de comandos Pup para interactuar con las + API de Datadog desde la terminal o flujos de trabajo de agentes de IA. further_reading: - link: https://github.com/DataDog/pup tag: GitHub - text: Repositorio de Pup CLI + text: Repositorio de la CLI de Pup - link: https://github.com/DataDog/pup/blob/main/README.md tag: GitHub - text: Documentación completa de Pup CLI + text: Documentación completa de la CLI de Pup - link: https://github.com/DataDog/pup/blob/main/docs/COMMANDS.md tag: GitHub text: Referencia de comandos - link: mcp_server/ tag: Documentación - text: Servidor MCP de Datadog -title: Pup CLI + text: Datadog MCP Server +title: CLI de Pup --- ## Descripción general {#overview} -[Pup CLI][1] es una interfaz de línea de comandos integral, lista para agentes de IA, que brinda a los agentes de IA acceso a la plataforma de observabilidad de Datadog. Expone [la superficie de la API de Datadog][9] para su uso en flujos de trabajo de agentes de IA y pipelines automatizados. +[La CLI de Pup][1] es una interfaz de línea de comandos integral y lista para agentes de IA que brinda a los agentes de IA acceso a la plataforma de observabilidad de Datadog. Expone la [superficie de la API de Datadog][9] para su uso en flujos de trabajo de agentes de IA y pipelines automatizadas. Características clave: -- **Comandos autodetectables**: Los comandos están estructurados para que los agentes puedan navegar por ellos sin documentación externa. +- **Comandos autodescubribles**: Los comandos están estructurados para que los agentes puedan navegar por ellos sin documentación externa. - **Salida estructurada**: Las respuestas están disponibles en JSON y YAML para un parseo confiable. -- **Autenticación con contexto**: OAuth2 y PKCE proporcionan acceso con contexto sin clave de API de larga duración. -- **Amplia cobertura de productos**: Pup admite seguimiento, registros, métricas, RUM, seguridad y más. +- **Autenticación con alcance limitado**: OAuth2 y PKCE proporcionan acceso con alcance limitado sin claves de API de larga duración. +- **Amplia cobertura de productos**: Pup admite monitores, registros, métricas, RUM, seguridad y más. -
Esta página cubre las características principales de Pup. Consulte la documentación del repositorio de Pup para la lista completa de características y comandos.
+
Esta página cubre las características principales de Pup. Consulte la documentación del repositorio de Pup para obtener la lista completa de características y comandos.
## Instalación {#installation} @@ -38,7 +38,7 @@ brew tap datadog-labs/pack brew install datadog-labs/pack/pup {{< /code-block >}} -### Compilar desde la fuente {#build-from-source} +### Compilar desde el código fuente {#build-from-source} {{< code-block lang="bash" >}} git clone https://github.com/DataDog/pup.git && cd pup @@ -48,7 +48,7 @@ cp target/release/pup /usr/local/bin/pup ### Descarga manual {#manual-download} -Descargue los binarios preconstruidos de la [última versión][2]. +Descargue los binarios precompilados desde la [versión más reciente][2]. ## Ejemplos de uso {#usage-examples} @@ -72,63 +72,63 @@ pup dashboards get pup dashboards delete --yes {{< /code-block >}} -## Áreas de producto soportadas {#supported-product-areas} +## Áreas de producto compatibles {#supported-product-areas} -Pup cubre la mayoría de las superficies principales de productos de Datadog. Consulte la [referencia de comandos][3] para la lista canónica de comandos específicos del producto. También puede ejecutar `pup --help` (o `pup agent schema` para salida legible por máquina) para la lista en vivo de comandos tal como se construyó. +Pup cubre la mayoría de las principales superficies de productos de Datadog. Consulte la [referencia de comandos][3] para obtener la lista canónica de comandos específicos del producto. También puede ejecutar `pup --help` (o `pup agent schema` para obtener una salida legible por máquina) para ver la lista de comandos en vivo tal como fueron compilados. | Categoría | Ejemplos | |----------|----------| | Observabilidad central | Métricas, registros, eventos, RUM, APM, trazas | | Monitoreo y Alerting | Monitores, tableros, SLOs, sintéticos, tiempos de inactividad, flujos de trabajo | -| Seguridad y Compliance | Reglas de seguridad, señales, hallazgos, registros de auditoría, amenazas de CSM | -| Infrastructure y Nube | Servidores, etiquetas, contenedores, red, integraciones de AWS/GCP/Azure | -| Incidentes y Operaciones | Incidentes, de guardia, gestión de incidencias, seguimiento de errores, catálogo de servicios | -| CI/CD y Desarrollo | Visibilidad de CI, optimización de pruebas, métricas DORA, puertas de despliegue | -| Organización y Acceso | Usuarios, claves de API, claves de aplicación, organizaciones | -| Plataforma y Configuración | Medición de uso, gestión de costos, feature flags, observability pipelines | +| Security and Compliance | Security rules, signals, findings, audit logs, CSM threats | +| Infraestructura y nube | Hosts, etiquetas, contenedores, red, integraciones de AWS/GCP/Azure | +| Incident and Operations | Incidents, on-call, work management, error tracking, service catalog | +| CI/CD y desarrollo | Visibilidad de CI, optimización de pruebas, métricas DORA, puertas de despliegue | +| Organización y acceso | Usuarios, claves de API, claves de aplicación, organizaciones | +| Platform and Configuration | Usage metering, cost management, feature flags, pipelines de observabilidad | -## Modo agente {#agent-mode} +## Modo Agent {#agent-mode} -Cuando Pup es invocado por un agente de codificación de IA, cambia automáticamente al modo agente, que devuelve respuestas JSON estructuradas optimizadas para el consumo de máquina. Las respuestas incluyen metadatos, detalles de errores y sugerencias. El modo agente también aprueba automáticamente los mensajes de confirmación. +Cuando Pup es invocado por un agente de codificación de IA, cambia automáticamente al modo agente, el cual devuelve respuestas JSON estructuradas optimizadas para el consumo por máquina. Las respuestas incluyen metadatos, detalles de errores y sugerencias. El modo Agent también aprueba automáticamente las solicitudes de confirmación. -El modo agente se detecta automáticamente para [agentes de codificación compatibles][4] cuando su variable de entorno está configurada. También puede habilitarlo explícitamente con la bandera `--agent` o configurando `FORCE_AGENT_MODE=1`. +El modo Agent se detecta automáticamente para [agentes de codificación compatibles][4] cuando su variable de entorno está configurada. También puede habilitarlo explícitamente con la bandera `--agent` o configurando `FORCE_AGENT_MODE=1`. -## Características adicionales {#additional-features} +## Funciones adicionales {#additional-features} -Pup incluye características adicionales que se pueden utilizar en flujos de trabajo de agentes de IA; siga los enlaces a continuación para más información: +Pup incluye funciones adicionales que se pueden utilizar en flujos de trabajo de agentes de IA; siga los enlaces a continuación para obtener más información: -- [**Runbooks**][5]: `pup runbooks` es un motor de ejecución local para procedimientos operativos definidos en YAML, codificando tareas de múltiples pasos utilizando `pup`, shell, HTTP y pasos de flujo de trabajo de Datadog. -- [**Agent skills**][6]: Pup incluye habilidades y agentes de dominio integrados en el binario, instalables en cualquier asistente de codificación de IA con `pup skills install`. -- [**ACP server**][7]: `pup acp serve` ejecuta un servidor de agente de IA local que conecta herramientas de codificación a Datadog Bits AI a través de protocolos compatibles con ACP y OpenAI. +- [**Runbooks**][5]: `pup runbooks` es un motor de ejecución local para procedimientos operativos definidos en YAML, que codifica tareas de varios pasos utilizando `pup`, shell, HTTP y pasos de Datadog Workflow. +- [**Habilidades del Agent**][6]: Pup incluye habilidades y agentes de dominio integrados en el binario, instalables en cualquier asistente de codificación de IA con `pup skills install`. +- [**Servidor ACP**][7]: `pup acp serve` ejecuta un servidor de agente de IA local que conecta herramientas de codificación con Datadog Bits AI a través de ACP y protocolos compatibles con OpenAI. ## Autenticación {#authentication} -Pup admite métodos de autenticación OAuth2 y claves de API. OAuth2 es preferido; ejecute `pup auth login` para autenticar a través de su navegador. Si OAuth2 no está disponible, Pup recurre a claves de API (`DD_API_KEY` y `DD_APP_KEY`). Consulte la [documentación de autenticación][8] para más detalles. +Pup admite métodos de autenticación OAuth2 y clave de API. Se prefiere OAuth2; ejecute `pup auth login` para autenticarse a través de su navegador. Si OAuth2 no está disponible, Pup recurre a claves de API (`DD_API_KEY` y `DD_APP_KEY`). Consulte la [documentación de autenticación][8] para obtener más detalles. -## Banderas globales {#global-flags} +## Flags globales {#global-flags} -| Bandera | Descripción | +| Flag | Descripción | |------|-------------| | `-o, --output` | Formato de salida (`json`, `table`, `yaml`). Predeterminado: `json` | -| `-y, --yes` | Omitir mensajes de confirmación para operaciones destructivas | -| `--agent` | Habilitar modo agente | -| `--no-agent` | Deshabilitar modo agente | +| `-y, --yes` | Omitir las solicitudes de confirmación para operaciones destructivas | +| `--agent` | Habilitar el modo agente | +| `--no-agent` | Deshabilitar el modo agente | | `--read-only` | Bloquear todas las operaciones de escritura (crear, actualizar, eliminar) | -| `--org ` | Utilice un perfil de organización nombrado para flujos de trabajo de múltiples cuentas (ejecute `pup auth login --org` para configurar) | -| `-h, --help` | Imprima ayuda | +| `--org ` | Usar un perfil de organización con nombre para flujos de trabajo de cuentas múltiples (ejecute `pup auth login --org` para configurar) | +| `-h, --help` | Imprimir ayuda | ## Variables de entorno {#environment-variables} | Variable | Descripción | |----------|-------------| -| `DD_ACCESS_TOKEN` | Token portador para [autenticación sin estado][10] | -| `DD_API_KEY` | Clave de API de Datadog (opcional si se usa OAuth2 o `DD_ACCESS_TOKEN`) | -| `DD_APP_KEY` | Clave de aplicación de Datadog (opcional si se usa OAuth2 o `DD_ACCESS_TOKEN`) | +| `DD_ACCESS_TOKEN` | Token Bearer para [autenticación sin estado][10] | +| `DD_API_KEY` | Clave de Datadog API (opcional si usa OAuth2 o `DD_ACCESS_TOKEN`) | +| `DD_APP_KEY` | Clave de aplicación de Datadog (opcional si usa OAuth2 o `DD_ACCESS_TOKEN`) | | `DD_SITE` | Sitio de Datadog (predeterminado: `datadoghq.com`) | | `DD_AUTO_APPROVE` | Aprobar automáticamente operaciones destructivas (`true`/`false`) | -| `DD_TOKEN_STORAGE` | Backend de almacenamiento de token (`keychain` o `file`, predeterminado: auto-detección) | +| `DD_TOKEN_STORAGE` | Backend de almacenamiento de tokens (`keychain` o `file`, predeterminado: detección automática) | -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/cloud_cost_management/recommendations/_index.md b/hugo/content/es/cloud_cost_management/recommendations/_index.md index 2bf700d7f5a..7768d1f3a51 100644 --- a/hugo/content/es/cloud_cost_management/recommendations/_index.md +++ b/hugo/content/es/cloud_cost_management/recommendations/_index.md @@ -7,34 +7,62 @@ algolia: - cost recommendation - cloud resources - cloud resource + - cost recommendation risk + - cost recommendation effort + - cost recommendation level of effort aliases: - /es/cloud_cost_management/recommendations/savings description: Aprenda a reducir el gasto de los recursos en la nube de su organización - con Cloud Cost Recommendations. + con las Recomendaciones de costos. further_reading: - link: /cloud_cost_management/ tag: Documentación - text: Aprenda sobre Cloud Cost Management + text: Obtenga información sobre Cloud Cost Management - link: /integrations/guide/aws-integration-and-cloudwatch-faq/ tag: Documentación - text: Integración de AWS y Preguntas Frecuentes sobre CloudWatch + text: Preguntas frecuentes sobre la integración de AWS y CloudWatch - link: https://www.datadoghq.com/blog/finops-at-datadog/ tag: Blog - text: Cómo hemos creado una práctica exitosa de FinOps en Datadog + text: Cómo hemos creado una práctica de FinOps exitosa en Datadog - link: https://www.datadoghq.com/blog/cloud-cost-recommendations/ tag: Blog - text: Elimine el desperdicio en la nube en AWS, Azure y Google Cloud con Cloud Cost - Recommendations + text: Elimine el desperdicio en la nube en AWS, Azure y Google Cloud con las recomendaciones + de Cloud Cost multifiltersearch: data: - category: Configure cloud_provider: Anthropic - recommendation_description: Identifica las claves de API de Anthropic sin uso - de almacenamiento en caché de solicitudes y recomienda habilitar el almacenamiento - en caché de solicitudes para reducir los costos de tokens de entrada. - recommendation_prerequisites: '[Anthropic integration](/integrations/anthropic/)' - recommendation_type: Enable Anthropic Prompt Caching - resource_type: Anthropic API Key + recommendation_description: Identifica claves de API de Anthropic sin uso de almacenamiento + en caché de prompts y recomienda habilitar el almacenamiento en caché de prompts + para reducir los costos de tokens de entrada. + recommendation_prerequisites: '' + recommendation_type: Enable Prompt Caching + resource_type: API Key + - category: Configure + cloud_provider: Anthropic + recommendation_description: Identifica claves de API de Anthropic que ya utilizan + almacenamiento en caché de prompts por debajo de la tasa de aciertos objetivo + y recomienda mejorar la configuración de caché para reducir los costos de tokens + de entrada. + recommendation_prerequisites: '' + recommendation_type: Optimize Prompt Caching + resource_type: API Key + - category: Configure + cloud_provider: Anthropic + recommendation_description: Identifica a los usuarios empresariales cuyo gasto + se concentra en los modelos más costosos y recomienda utilizar un modelo de + menor costo. + recommendation_prerequisites: '' + recommendation_type: Reduce Top-Tier Model Usage + resource_type: Enterprise User + - category: Downsize + cloud_provider: AWS + recommendation_description: Grupos de Auto Scaling con cargas de trabajo no contenerizadas + que tienen un bajo uso de CPU y memoria y que pueden reducirse ajustando sus + estrategias de escalado. + recommendation_prerequisites: '[Datadog Agent](/agent/)' + recommendation_type: Downsize Auto Scaling Group + resource_type: Auto Scaling Group - category: Migrate cloud_provider: AWS recommendation_description: Un grupo de Auto Scaling que incluye tipos de instancias @@ -45,58 +73,58 @@ multifiltersearch: - category: Downsize cloud_provider: AWS recommendation_description: Un grupo de Auto Scaling con una capacidad mínima - de instancias que puede ser reducida. + de instancias que puede reducirse. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Reduce Minimum Capacity resource_type: Auto Scaling Group - category: Terminate cloud_provider: AWS recommendation_description: Los registros de CloudTrail con eventos pagados pueden - ser eliminados para reducir costos. + eliminarse para reducir costos. recommendation_prerequisites: '' - recommendation_type: Delete unnecessary CloudTrail trails + recommendation_type: Delete Unnecessary CloudTrail Trails resource_type: CloudTrail Trail - category: Terminate cloud_provider: AWS - recommendation_description: El Índice Secundario Global (GSI) de una tabla de + recommendation_description: Un índice secundario global (GSI) de una tabla de DynamoDB tiene 0 lecturas consumidas. recommendation_prerequisites: '' recommendation_type: Delete DynamoDB Global Secondary Index resource_type: DynamoDB Table - category: Terminate cloud_provider: AWS - recommendation_description: Una tabla de DynamoDB tiene 0 lecturas consumidas - y 0 escrituras no replicadas consumidas. + recommendation_description: Una tabla de DynamoDB tiene cargos por más de 2 copias + de seguridad bajo demanda. recommendation_prerequisites: '' - recommendation_type: Delete DynamoDB Table + recommendation_type: Delete Extra DynamoDB On-Demand Backups resource_type: DynamoDB Table - category: Terminate cloud_provider: AWS - recommendation_description: Una tabla de DynamoDB tiene cargos por más de 2 copias - de seguridad bajo demanda. + recommendation_description: Una tabla de DynamoDB tiene 0 lecturas consumidas + y 0 escrituras no replicadas consumidas. recommendation_prerequisites: '' - recommendation_type: Delete Extra On-Demand Backups + recommendation_type: Delete Unused DynamoDB Table resource_type: DynamoDB Table - category: Downsize cloud_provider: AWS - recommendation_description: Una tabla de DynamoDB provisionada que utiliza menos - del 80% de su capacidad de lectura y escritura en más del 80% del tiempo. + recommendation_description: Una tabla de DynamoDB aprovisionada que utiliza menos + del 80% de su capacidad de lectura y escritura más del 80% del tiempo. recommendation_prerequisites: '' recommendation_type: Downsize DynamoDB Capacity resource_type: DynamoDB Table - category: Migrate cloud_provider: AWS - recommendation_description: Migrar a la clase de tabla de Acceso Infrecuente (IA) - ofrece más ahorros potenciales en tarifas de almacenamiento en comparación con - los costos adicionales de tarifas de capacidad. + recommendation_description: La migración a la clase de tabla de acceso poco frecuente + (IA) ofrece más ahorros potenciales en las tarifas de almacenamiento en comparación + con los costos adicionales de las tarifas de capacidad. recommendation_prerequisites: '' recommendation_type: Migrate DynamoDB to Infrequent Access Table Class resource_type: DynamoDB Table - category: Migrate cloud_provider: AWS - recommendation_description: Una tabla de DynamoDB provisionada tiene un consumo - de capacidad de lectura y escritura por hora por debajo del 18% al menos una - vez en las últimas dos semanas. + recommendation_description: Una tabla de DynamoDB aprovisionada tiene un consumo + de capacidad de lectura y escritura por hora inferior al 18% al menos una vez + en las últimas dos semanas. recommendation_prerequisites: '' recommendation_type: Migrate DynamoDB to On-Demand Capacity Mode resource_type: DynamoDB Table @@ -109,117 +137,117 @@ multifiltersearch: resource_type: DynamoDB Table - category: Migrate cloud_provider: AWS - recommendation_description: Migrar a la clase de tabla Estándar ofrece ahorros - potenciales en tarifas de capacidad en comparación con los costos adicionales - de tarifas de almacenamiento, o utiliza el nivel gratuito de la clase de tabla - Estándar para almacenamiento. + recommendation_description: La migración a la clase de tabla Standard ofrece ahorros + potenciales en las tarifas de capacidad en comparación con los costos adicionales + de las tarifas de almacenamiento, o utiliza la capa gratuita de la clase de + tabla Standard para el almacenamiento. recommendation_prerequisites: '' recommendation_type: Migrate DynamoDB to Standard Table Class resource_type: DynamoDB Table - category: Terminate cloud_provider: AWS recommendation_description: Instantáneas de EBS que tienen al menos 90 días de - antigüedad y pueden ser eliminadas. + antigüedad y pueden eliminarse. recommendation_prerequisites: '' recommendation_type: Delete Old EBS Snapshots resource_type: EBS Snapshot + - category: Terminate + cloud_provider: AWS + recommendation_description: Volumen que no está adjunto a una instancia de EC2. + recommendation_prerequisites: '' + recommendation_type: Delete Unattached EBS Volume + resource_type: EBS Volume + - category: Terminate + cloud_provider: AWS + recommendation_description: Volumen que no tiene actividad de lectura o escritura. + recommendation_prerequisites: '' + recommendation_type: Delete Unused EBS Volume + resource_type: EBS Volume - category: Downsize cloud_provider: AWS - recommendation_description: Un volumen EBS que utiliza menos del 80% de los IOPS - provisionados para lecturas y escrituras. + recommendation_description: Un volumen de EBS que utiliza menos del 80% de las + IOPS aprovisionadas para lecturas y escrituras. recommendation_prerequisites: '[Amazon EC2 integration](/integrations/amazon_ec2/)' recommendation_type: Downsize EBS Volume Provisioned IOPS resource_type: EBS Volume - category: Downsize cloud_provider: AWS - recommendation_description: Un volumen EBS que utiliza menos del umbral configurado - del rendimiento provisionado para lecturas y escrituras. + recommendation_description: Un volumen de EBS que utiliza menos del umbral configurado + del rendimiento aprovisionado para lecturas y escrituras. recommendation_prerequisites: '[Amazon EC2 integration](/integrations/amazon_ec2/)' recommendation_type: Downsize EBS Volume Provisioned Throughput resource_type: EBS Volume - category: Downsize cloud_provider: AWS - recommendation_description: Un volumen EBS con menos del 20% de su capacidad de - almacenamiento utilizada. + recommendation_description: Un volumen de EBS con menos del 20% de su capacidad + de almacenamiento utilizada. recommendation_prerequisites: '[Amazon EC2 integration](/integrations/amazon_ec2/)' recommendation_type: Downsize EBS Volume Storage Capacity resource_type: EBS Volume - category: Migrate cloud_provider: AWS - recommendation_description: Volúmenes EBS que son GP2 y pueden ser actualizados - a GP3 para reducción de costos y mejora del rendimiento. + recommendation_description: Volúmenes de EBS que son GP2 y pueden actualizarse + a GP3 para reducir costos y mejorar el rendimiento. recommendation_prerequisites: '' recommendation_type: Migrate EBS Volume from GP2 to GP3 resource_type: EBS Volume - category: Migrate cloud_provider: AWS - recommendation_description: Volúmenes EBS que son IO1 y pueden ser actualizados - a GP3 para reducción de costos y mejora del rendimiento. + recommendation_description: Volúmenes de EBS que son IO1 y pueden actualizarse + a GP3 para reducir costos y mejorar el rendimiento. recommendation_prerequisites: '' recommendation_type: Migrate EBS Volume from IO1 to GP3 resource_type: EBS Volume - category: Terminate cloud_provider: AWS - recommendation_description: Volumen que no está adjunto a una instancia EC2. - recommendation_prerequisites: '' - recommendation_type: Terminate Unattached EBS Volume - resource_type: EBS Volume - - category: Terminate - cloud_provider: AWS - recommendation_description: Volumen que no tiene actividad de lectura o escritura. - recommendation_prerequisites: '' - recommendation_type: Terminate Unused EBS Volume - resource_type: EBS Volume - - category: Terminate - cloud_provider: AWS - recommendation_description: Direcciones IP elásticas con cargos inactivos en su - informe de costos y uso de AWS. + recommendation_description: Direcciones IP elásticas con cargos por inactividad + en su informe de costos y uso de AWS. recommendation_prerequisites: '' - recommendation_type: Delete Idle Elastic IP + recommendation_type: Release Idle Elastic IP resource_type: Elastic IP - category: Downsize cloud_provider: AWS - recommendation_description: Instancias EC2 con utilización de CPU y memoria inferior - a los recursos disponibles de la siguiente instancia más pequeña en la familia. - Sin el Agente de Datadog, esta recomendación se genera utilizando métricas de - CloudWatch. + recommendation_description: Instancias de EC2 con una utilización de CPU y memoria + menor a los recursos disponibles de la siguiente instancia más pequeña de la + familia. Sin el Datadog Agent, esta recomendación se genera utilizando métricas + de CloudWatch. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize EC2 Instance resource_type: EC2 Instance - category: Migrate cloud_provider: AWS - recommendation_description: Instancias EC2 de una generación anterior que pueden - ser actualizadas a un tipo de instancia más nuevo. + recommendation_description: Instancias de EC2 de una generación anterior que pueden + actualizarse a un tipo de instancia más reciente. recommendation_prerequisites: '' recommendation_type: Migrate EC2 Instance resource_type: EC2 Instance - category: Migrate cloud_provider: AWS - recommendation_description: Instancias EC2 que pueden ser migradas a un tipo de + recommendation_description: Instancias de EC2 que pueden migrarse a un tipo de instancia Graviton equivalente. recommendation_prerequisites: '' recommendation_type: Migrate EC2 Instance to Graviton Type resource_type: EC2 Instance - category: Terminate cloud_provider: AWS - recommendation_description: Instancias EC2 con utilización de CPU y memoria por - debajo de un umbral personalizable. Sin el Agente de Datadog, esta recomendación - se genera utilizando métricas de CloudWatch. + recommendation_description: Instancias de EC2 que alojan nodos de Kubernetes que + están bloqueados en la fase pendiente, lo que indica que el nodo no funciona + correctamente. recommendation_prerequisites: '[Datadog Agent](/agent/)' - recommendation_type: Terminate EC2 Instance + recommendation_type: Terminate EC2 Instance with Stuck Node resource_type: EC2 Instance - category: Terminate cloud_provider: AWS - recommendation_description: Instancias EC2 que alojan nodos de Kubernetes que - están atascados en la fase pendiente, indicando que el nodo no está funcionando - correctamente. + recommendation_description: Instancias de EC2 con una utilización de CPU y memoria + por debajo de un umbral personalizable. Sin el Datadog Agent, esta recomendación + se genera utilizando métricas de CloudWatch. recommendation_prerequisites: '[Datadog Agent](/agent/)' - recommendation_type: Terminate EC2 Instance with Stuck Node + recommendation_type: Terminate Unused EC2 Instance resource_type: EC2 Instance - category: Terminate cloud_provider: AWS - recommendation_description: Repositorio ECR sin actividad de extracción que puede - ser eliminado para reducir costos. + recommendation_description: Repositorio de ECR sin actividad de extracción que + puede eliminarse para reducir costos. recommendation_prerequisites: '' recommendation_type: Delete ECR Repository resource_type: ECR Repository @@ -233,53 +261,47 @@ multifiltersearch: - category: Terminate cloud_provider: AWS recommendation_description: Un clúster de ElastiCache Redis sin aciertos de caché - y sin replicación o un clúster de Memcached sin aciertos de caché. + y sin replicación, o un clúster de Memcached sin aciertos de caché. recommendation_prerequisites: '' - recommendation_type: Terminate ElastiCache Cluster + recommendation_type: Delete Unused ElastiCache Cluster resource_type: ElastiCache Cluster - category: Terminate cloud_provider: AWS - recommendation_description: Dominio de OpenSearch sin actividad de solicitud. + recommendation_description: Dominio de OpenSearch sin actividad de solicitudes. recommendation_prerequisites: '' - recommendation_type: Delete OpenSearch Domain + recommendation_type: Delete Unused OpenSearch Domain resource_type: OpenSearch Domain - category: Terminate cloud_provider: AWS - recommendation_description: Un Classic Elastic Load Balancer sin conexiones activas - que no está adjunto a una instancia EC2. + recommendation_description: Classic Elastic Load Balancer sin conexiones activas + que no está asociado a una instancia de EC2. recommendation_prerequisites: '' - recommendation_type: Terminate Classic Load Balancer + recommendation_type: Delete Unused Classic Load Balancer resource_type: Classic Load Balancer - category: Terminate cloud_provider: AWS - recommendation_description: Un Application Load Balancer sin tráfico procesado. + recommendation_description: Un balanceador de carga de aplicaciones sin tráfico + procesado. recommendation_prerequisites: '' - recommendation_type: Terminate Application Load Balancer + recommendation_type: Delete Application Load Balancer resource_type: Load Balancer - category: Terminate cloud_provider: AWS - recommendation_description: Un Network Load Balancer con 0 bytes procesados. + recommendation_description: Un balanceador de carga de red con 0 bytes procesados. recommendation_prerequisites: '' - recommendation_type: Terminate Network Load Balancer + recommendation_type: Delete Network Load Balancer resource_type: Load Balancer - category: Downsize cloud_provider: AWS - recommendation_description: Función de AWS Lambda con una concurrencia provisionada - sobreasignada. + recommendation_description: Función de AWS Lambda con concurrencia aprovisionada + asignada en exceso. recommendation_prerequisites: '' recommendation_type: Downsize Lambda Provisioned Concurrency resource_type: Lambda - - category: Terminate - cloud_provider: AWS - recommendation_description: Eliminar los permisos de escritura para los registros - de CloudWatch de Lambda para evitar registros innecesarios adicionales. - recommendation_prerequisites: '' - recommendation_type: Delete Lambda CloudWatch Logs and write permissions - resource_type: CloudWatch Log Group - category: Downsize cloud_provider: AWS - recommendation_description: Reducir los costos de almacenamiento de los registros - de CloudWatch estableciendo políticas de retención adecuadas. + recommendation_description: Reduzca los costos de almacenamiento de CloudWatch + Logs estableciendo políticas de retención adecuadas. recommendation_prerequisites: '' recommendation_type: Set CloudWatch Logs Retention Policy resource_type: CloudWatch Log Group @@ -287,101 +309,149 @@ multifiltersearch: cloud_provider: AWS recommendation_description: Un broker de MQ con 0 conexiones. recommendation_prerequisites: '' - recommendation_type: Terminate MQ Broker + recommendation_type: Delete Unused MQ Broker resource_type: MQ Broker + - category: Terminate + cloud_provider: AWS + recommendation_description: Instancia de RDS con 0 conexiones a la base de datos + y 0 retraso de réplica. + recommendation_prerequisites: '' + recommendation_type: Delete Unused RDS Instance + resource_type: RDS Instance + - category: Downsize + cloud_provider: AWS + recommendation_description: Instancias de RDS que AWS Compute Optimizer sugiere + reducir a un tipo de instancia más pequeño. + recommendation_prerequisites: '[AWS Cost Optimization Hub permissions](/cloud_cost_management/setup/aws/#permissions-for-aws-cost-optimization-hub-recommendations)' + recommendation_type: Downsize RDS Instance + resource_type: RDS Instance - category: Downsize cloud_provider: AWS - recommendation_description: Instancias de RDS utilizando menos del 80% de IOPS - provisionados en las últimas dos semanas. + recommendation_description: Instancias de RDS que utilizan menos del 80% de las + IOPS aprovisionadas durante las últimas dos semanas. recommendation_prerequisites: '' recommendation_type: Downsize RDS Instance Provisioned IOPS resource_type: RDS Instance - category: Migrate cloud_provider: AWS - recommendation_description: Un RDS que ejecuta una versión de motor que ya no - es compatible y que incurre en [cargos por soporte extendido](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-charges.html). + recommendation_description: Una instancia de RDS que ejecuta una versión de motor + que ya no es compatible y que genera [cargos por soporte extendido](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-charges.html). recommendation_prerequisites: '' recommendation_type: Migrate RDS Instance Engine resource_type: RDS Instance - category: Migrate cloud_provider: AWS - recommendation_description: Instancias de RDS que pueden ser migradas a un tipo - de instancia equivalente de Graviton. + recommendation_description: Instancias de RDS que pueden migrarse a un tipo de + instancia Graviton equivalente. recommendation_prerequisites: '' recommendation_type: Migrate RDS Instance to Graviton resource_type: RDS Instance - - category: Terminate - cloud_provider: AWS - recommendation_description: Instancia de RDS con 0 conexiones a la base de datos - y 0 retraso de réplicas. - recommendation_prerequisites: '' - recommendation_type: Terminate Unused RDS Instance - resource_type: RDS Instance - category: Terminate cloud_provider: AWS recommendation_description: Clúster de Redshift con 0 conexiones a la base de datos. recommendation_prerequisites: '' - recommendation_type: Terminate Redshift Cluster + recommendation_type: Delete Redshift Cluster resource_type: Redshift Cluster - category: Migrate cloud_provider: AWS - recommendation_description: Un bucket con versionado habilitado tiene costos de - almacenamiento significativos por versiones antiguas de objetos. + recommendation_description: Un bucket con el versionado habilitado tiene costos + de almacenamiento significativos debido a versiones de objetos antiguas. recommendation_prerequisites: '[Storage Management](https://www.datadoghq.com/product/storage-management)' recommendation_type: Clean up old versions to reduce storage costs resource_type: S3 Bucket - category: Terminate cloud_provider: AWS - recommendation_description: Un bucket estándar de S3 sin un ciclo de vida de expiración - de versiones no actuales y que no sirve un sitio web contiene bytes de almacenamiento - de versiones no actuales mayores a 30 días. + recommendation_description: Un bucket de S3 con costos de almacenamiento mínimos + y sin uso significativo de la API de objetos (actividad de Get, Put, Copy, Head + o carga multipart). + recommendation_prerequisites: '[Cloud Cost Management](https://www.datadoghq.com/product/cloud-cost-management) + or [Storage Management](https://www.datadoghq.com/product/storage-management)' + recommendation_type: Delete S3 Bucket + resource_type: S3 Bucket + - category: Terminate + cloud_provider: AWS + recommendation_description: Un bucket de S3 estándar sin un ciclo de vida de expiración + de versiones no actuales y que no aloja un sitio web contiene bytes de almacenamiento + de versiones no actuales con más de 30 días de antigüedad. recommendation_prerequisites: '[Storage Lens](/integrations/amazon_s3_storage_lens/)' recommendation_type: Delete S3 noncurrent version objects resource_type: S3 Bucket - category: Terminate cloud_provider: AWS - recommendation_description: Buckets de S3 con cargas multipart incompletas mayores - a 7 días que están consumiendo espacio de almacenamiento. + recommendation_description: Buckets de S3 con cargas multipart incompletas de + más de 7 días de antigüedad que consumen espacio de almacenamiento. recommendation_prerequisites: '[Storage Lens](/integrations/amazon_s3_storage_lens/)' recommendation_type: Delete abandoned S3 multipart uploads resource_type: S3 Bucket - category: Migrate cloud_provider: AWS recommendation_description: Un bucket tiene un porcentaje significativo de archivos - pequeños en clases de almacenamiento de acceso poco frecuente, aumentando los - costos de almacenamiento debido al tamaño mínimo de facturación. + pequeños en clases de almacenamiento de acceso poco frecuente, lo que aumenta + los costos de almacenamiento debido al tamaño mínimo de facturación. recommendation_prerequisites: '' recommendation_type: Reduce small file count to reduce storage costs resource_type: S3 Bucket - - category: Terminate - cloud_provider: AWS - recommendation_description: Un bucket de S3 con costos de almacenamiento mínimos - y sin solicitudes GET o PUT. - recommendation_prerequisites: '' - recommendation_type: Terminate S3 Bucket - resource_type: S3 Bucket - category: Migrate cloud_provider: AWS - recommendation_description: Un bucket tiene altos cargos por eliminación anticipada. + recommendation_description: Un bucket tiene cargos elevados por eliminación anticipada. recommendation_prerequisites: '' recommendation_type: Transition S3 IA and Glacier objects to Intelligent-Tiering resource_type: S3 Bucket - category: Migrate cloud_provider: AWS - recommendation_description: Los costos de un bucket son casi totalmente en almacenamiento - estándar por GB, pero las solicitudes GET indican que pocos objetos son accedidos. + recommendation_description: Los costos de un bucket se deben casi en su totalidad + al almacenamiento estándar por GB, pero las solicitudes GET indican que se accede + a pocos objetos. recommendation_prerequisites: '' recommendation_type: Transition S3 Standard objects to Intelligent Tiering resource_type: S3 Bucket - category: Migrate cloud_provider: AWS - recommendation_description: Los costos de un prefijo de bucket son casi totalmente - en almacenamiento estándar por GB, pero las solicitudes GET indican que pocos - objetos en el prefijo son accedidos. + recommendation_description: Los costos del prefijo de un bucket se deben casi + en su totalidad al almacenamiento estándar por GB, pero las solicitudes GET + indican que se accede a pocos objetos en el prefijo. recommendation_prerequisites: '[Storage Management](https://www.datadoghq.com/product/storage-management)' recommendation_type: Transition S3 objects to Infrequent Access by Prefix resource_type: S3 Bucket + - category: Migrate + cloud_provider: AWS + recommendation_description: Un prefijo de bucket tiene datos antiguos de clase + Standard sin una regla de transición de ciclo de vida para moverlos a un almacenamiento + más económico. + recommendation_prerequisites: '[Storage Management](https://www.datadoghq.com/product/storage-management)' + recommendation_type: Transition old Standard-class data + resource_type: S3 Bucket + - category: Terminate + cloud_provider: AWS + recommendation_description: Un punto de conexión de SageMaker con cero invocaciones. + recommendation_prerequisites: '' + recommendation_type: Delete Idle SageMaker Endpoint + resource_type: SageMaker Endpoint + - category: Downsize + cloud_provider: AWS + recommendation_description: Endpoints de inferencia en tiempo real de SageMaker + con una utilización de CPU y memoria que se ajusta a los recursos de la siguiente + instancia más pequeña de la familia. Se excluyen los endpoints que utilizan + instancias de GPU o acelerador, o escalado administrado. + recommendation_prerequisites: '' + recommendation_type: Downsize SageMaker Endpoint + resource_type: SageMaker Endpoint + - category: Configure + cloud_provider: AWS + recommendation_description: Trabajos de entrenamiento de SageMaker que pueden + utilizar entrenamiento spot administrado para reducir costos cuando los scripts + de entrenamiento admiten puntos de control. + recommendation_prerequisites: '' + recommendation_type: Enable SageMaker Managed Spot Training + resource_type: SageMaker Training Job + - category: Terminate + cloud_provider: AWS + recommendation_description: Una puerta de enlace NAT que no tiene bytes enviados + a través de ella. + recommendation_prerequisites: '' + recommendation_type: Delete Unused NAT Gateway + resource_type: VPC NAT Gateway - category: Downsize cloud_provider: AWS recommendation_description: Los recursos que necesitan una puerta de enlace NAT @@ -394,209 +464,306 @@ multifiltersearch: cloud_provider: AWS recommendation_description: Los recursos en la misma VPC deben evitar comunicarse entre sí a través de una puerta de enlace NAT porque eso incurre en cargos innecesarios - por procesamiento de puerta de enlace NAT. + de procesamiento de puerta de enlace NAT. recommendation_prerequisites: '[NPM](/network_monitoring/performance/setup/)' recommendation_type: Reduce NAT Gateway Within-VPC Transfers resource_type: VPC NAT Gateway - - category: Terminate - cloud_provider: AWS - recommendation_description: Una puerta de enlace NAT que no tiene bytes enviados - a través de ella. - recommendation_prerequisites: '' - recommendation_type: Terminate NAT Gateway - resource_type: VPC NAT Gateway - category: Terminate cloud_provider: Azure recommendation_description: Un clúster de AKS con menos del 5% de uso de CPU. recommendation_prerequisites: '' - recommendation_type: Terminate AKS Cluster + recommendation_type: Delete AKS Cluster resource_type: AKS Cluster + - category: Terminate + cloud_provider: Azure + recommendation_description: Planes de App Service sin aplicaciones implementadas + que Azure Advisor recomienda eliminar. + recommendation_prerequisites: '' + recommendation_type: Delete Unused App Service Plan + resource_type: App Service Plan + - category: Migrate + cloud_provider: Azure + recommendation_description: La instantánea se almacena en almacenamiento Premium. + Migrar al almacenamiento estándar reduce el costo en un 60% sin cambios en la + durabilidad de los datos. + recommendation_prerequisites: '' + recommendation_type: Migrate Disk Snapshot to Standard Storage + resource_type: Managed Disk Snapshot - category: Downsize cloud_provider: Azure - recommendation_description: Una Container App tiene más réplicas mínimas de las - necesarias. + recommendation_description: Una aplicación de contenedor tiene más réplicas mínimas + de las necesarias. recommendation_prerequisites: '' recommendation_type: Downsize Container App resource_type: Container App - category: Terminate cloud_provider: Azure - recommendation_description: Un Load Balancer con 0 bytes transferidos. + recommendation_description: Una aplicación de contenedor de Azure no tiene solicitudes + en el período de retrospectiva configurado. + recommendation_prerequisites: '' + recommendation_type: Scale to Zero Azure Container App Replicas + resource_type: Container App + - category: Terminate + cloud_provider: Azure + recommendation_description: Un registro de contenedor que nunca ha recibido extracciones + exitosas. + recommendation_prerequisites: '' + recommendation_type: Delete Container Registry + resource_type: Container Registry + - category: Terminate + cloud_provider: Azure + recommendation_description: Un clúster se considera no utilizado y detenido si + ha estado detenido durante al menos 60 días. La recomendación es eliminar el + clúster para reducir costos. + recommendation_prerequisites: '' + recommendation_type: Terminate Unused Stopped Data Explorer Cluster + resource_type: Data Explorer Cluster + - category: Terminate + cloud_provider: Azure + recommendation_description: Balanceador de carga con 0 bytes transferidos. recommendation_prerequisites: '' recommendation_type: Delete Load Balancer resource_type: Load Balancer - category: Terminate cloud_provider: Azure - recommendation_description: El disco administrado está desconectado y puede ser - eliminado. + recommendation_description: El disco administrado no está conectado y se puede + eliminar. recommendation_prerequisites: '' recommendation_type: Delete Unattached Managed Disk resource_type: Managed Disk - category: Terminate cloud_provider: Azure recommendation_description: Disco administrado sin operaciones de lectura/escritura, - que puede ser eliminado. + el cual puede eliminarse. recommendation_prerequisites: '' recommendation_type: Delete Unused Managed Disk resource_type: Managed Disk - category: Downsize cloud_provider: Azure recommendation_description: Disco administrado que utiliza menos del umbral configurado - de IOPS provisionados. + de IOPS aprovisionadas. recommendation_prerequisites: '' recommendation_type: Downsize Managed Disk IOPS resource_type: Managed Disk - category: Downsize cloud_provider: Azure recommendation_description: Disco administrado que utiliza menos del umbral configurado - de rendimiento provisionado. + de rendimiento aprovisionado. recommendation_prerequisites: '' recommendation_type: Downsize Managed Disk Throughput resource_type: Managed Disk - category: Terminate cloud_provider: Azure - recommendation_description: Servidor de base de datos sin conexiones, que puede - ser terminado. + recommendation_description: Servidor de base de datos sin conexiones, el cual + puede terminarse. recommendation_prerequisites: '' - recommendation_type: Terminate Database for MySQL + recommendation_type: Delete Database for MySQL resource_type: MySQL Database - category: Terminate cloud_provider: Azure - recommendation_description: Servidor SQL sin conexiones, que puede ser terminado. + recommendation_description: Servidor de Azure Database for PostgreSQL sin conexiones, + el cual puede terminarse. recommendation_prerequisites: '' - recommendation_type: Terminate SQL Server - resource_type: SQL Server + recommendation_type: Delete Database for PostgreSQL + resource_type: Database for PostgreSQL + - category: Terminate + cloud_provider: Azure + recommendation_description: Caché de Azure Managed Redis sin operaciones de obtención + o establecimiento. + recommendation_prerequisites: '' + recommendation_type: Delete Azure Managed Redis + resource_type: Azure Managed Redis + - category: Terminate + cloud_provider: Azure + recommendation_description: Base de datos de SQL Server sin conexiones exitosas + y con CPU muy mínima, la cual puede terminarse. + recommendation_prerequisites: '' + recommendation_type: Delete SQL Server Database + resource_type: SQL Server Database - category: Downsize cloud_provider: Azure recommendation_description: Base de datos de SQL Server con bajo uso de DTU que - puede ser reducida. + puede reducirse. recommendation_prerequisites: '' recommendation_type: Downsize SQL Server Database DTU resource_type: SQL Server Database - - category: Terminate + - category: Downsize cloud_provider: Azure - recommendation_description: Base de datos de SQL Server sin conexiones exitosas - y con CPU muy mínima, que puede ser terminada. + recommendation_description: Base de datos de SQL Server que utiliza menos del + 20% de la capacidad de almacenamiento aprovisionada. recommendation_prerequisites: '' - recommendation_type: Terminate SQL Server Database + recommendation_type: Downsize SQL Server Database Storage resource_type: SQL Server Database + - category: Terminate + cloud_provider: Azure + recommendation_description: Cuenta de almacenamiento sin transacciones y con capacidad + utilizada insignificante en los últimos 14 días. + recommendation_prerequisites: '' + recommendation_type: Delete Storage Account + resource_type: Storage Account + - category: Terminate + cloud_provider: Azure + recommendation_description: Instancia de VM con menos del 5% de CPU de usuario + y más del 90% de memoria utilizable. Sin el Datadog Agent, esta recomendación + se genera utilizando métricas de CPU de Azure Monitor. + recommendation_prerequisites: '[Datadog Agent](/agent/)' + recommendation_type: Delete Azure VM Instance + resource_type: VM Instance - category: Downsize cloud_provider: Azure - recommendation_description: Instancia de VM que puede ser reducida a un tipo de - instancia más pequeño. + recommendation_description: Instancia de VM que puede reducirse a un tipo de instancia + más pequeño. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Azure VM Instance resource_type: VM Instance - - category: Terminate + - category: Migrate cloud_provider: Azure - recommendation_description: Instancia de VM con menos del 5% de CPU de usuario - y más del 90% de memoria utilizable. - recommendation_prerequisites: '[Datadog Agent](/agent/)' - recommendation_type: Terminate Azure VM Instance + recommendation_description: Instancia de VM que puede migrarse a un tipo de instancia + Arm equivalente por un precio menor. + recommendation_prerequisites: '' + recommendation_type: Migrate Azure VM Instance to Arm resource_type: VM Instance + - category: Migrate + cloud_provider: Azure + recommendation_description: Instancia de VM que se ejecuta en una serie de generación + heredada que tiene un reemplazo moderno recomendado. + recommendation_prerequisites: '' + recommendation_type: Upgrade Azure VM Instance + resource_type: VM Instance + - category: Downsize + cloud_provider: Azure + recommendation_description: Instancias de VM con bajo uso que pueden reducirse. + recommendation_prerequisites: '' + recommendation_type: Downsize Azure VM Scale Set + resource_type: VM Scale Set + - category: Terminate + cloud_provider: Azure + recommendation_description: Instancias de VM con bajo uso que pueden apagarse. + recommendation_prerequisites: '' + recommendation_type: Shutdown Azure VM Scale Set + resource_type: VM Scale Set + - category: Configure + cloud_provider: Cursor + recommendation_description: Identifica asientos de Cursor con un gasto significativo + en modelos que no son automáticos y recomienda usar el modo automático como + elección de modelo. + recommendation_prerequisites: '' + recommendation_type: Enable Cursor Auto Mode + resource_type: Cursor Seat - category: Downsize cloud_provider: AWS - recommendation_description: Identifica clústeres de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica clústeres de Databricks de propósito general + sobreaprovisionados y sugiere ajustar el tamaño a tipos de instancia más pequeños + para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks All-Purpose resource_type: Databricks Cluster - category: Downsize cloud_provider: Azure - recommendation_description: Identifica clústeres de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica clústeres de Databricks de propósito general + sobreaprovisionados y sugiere ajustar el tamaño a tipos de instancia más pequeños + para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks All-Purpose resource_type: Databricks Cluster - category: Downsize cloud_provider: GCP - recommendation_description: Identifica clústeres de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica clústeres de Databricks de propósito general + sobreaprovisionados y sugiere ajustar el tamaño a tipos de instancia más pequeños + para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks All-Purpose resource_type: Databricks Cluster - category: Downsize cloud_provider: AWS - recommendation_description: Identifica trabajos de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica trabajos de Databricks sobreaprovisionados + y sugiere ajustar el tamaño a tipos de instancia más pequeños para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks Job resource_type: Databricks Cluster - category: Downsize cloud_provider: Azure - recommendation_description: Identifica trabajos de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica trabajos de Databricks sobreaprovisionados + y sugiere ajustar el tamaño a tipos de instancia más pequeños para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks Job resource_type: Databricks Cluster - category: Downsize cloud_provider: GCP - recommendation_description: Identifica trabajos de Databricks sobredimensionados - y sugiere reducir el tamaño a tipos de instancia más pequeños para reducir costos. + recommendation_description: Identifica trabajos de Databricks sobreaprovisionados + y sugiere ajustar el tamaño a tipos de instancia más pequeños para reducir costos. recommendation_prerequisites: '' recommendation_type: Downsize Databricks Job resource_type: Databricks Cluster - category: Terminate cloud_provider: GCP - recommendation_description: Las direcciones IP de cómputo no utilizadas pueden - ser eliminadas. + recommendation_description: Las direcciones IP de cómputo no utilizadas se pueden + eliminar. recommendation_prerequisites: '' recommendation_type: Delete Unused Compute IP Address resource_type: Compute Address - category: Terminate cloud_provider: GCP - recommendation_description: Discos de cómputo que están desconectados y pueden - ser eliminados. + recommendation_description: Discos de cómputo que no están conectados y se pueden + eliminar. recommendation_prerequisites: '' recommendation_type: Delete Unattached Compute Disk resource_type: Compute Disk - category: Terminate cloud_provider: GCP - recommendation_description: Discos de cómputo que no están en uso y pueden ser - eliminados. + recommendation_description: Discos de cómputo que no se utilizan y se pueden eliminar. recommendation_prerequisites: '' recommendation_type: Delete Unused Compute Disk resource_type: Compute Disk - category: Terminate cloud_provider: GCP recommendation_description: Las direcciones IP globales de cómputo no utilizadas - pueden ser eliminadas. + se pueden eliminar. recommendation_prerequisites: '' recommendation_type: Delete Unused Compute Global IP Address resource_type: Compute Global Address + - category: Terminate + cloud_provider: GCP + recommendation_description: Instancia de cómputo con bajo uso de CPU, alta memoria + disponible y actividad de red mínima. + recommendation_prerequisites: '[Datadog Agent](/agent/)' + recommendation_type: Delete Compute Instance + resource_type: Compute Instance - category: Downsize cloud_provider: GCP recommendation_description: Instancia de cómputo con bajo uso de CPU y memoria - que puede ser reducida a un tipo de instancia más pequeño. + que se puede reducir a un tipo de instancia más pequeño. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Compute Instance resource_type: Compute Instance - - category: Terminate + - category: Downsize cloud_provider: GCP - recommendation_description: Instancia de cómputo con bajo uso de CPU, alta memoria - disponible y actividad de red mínima. + recommendation_description: Grupos de instancias de cómputo con cargas de trabajo + no contenerizadas que tienen bajo uso de CPU y memoria y se pueden reducir ajustando + sus estrategias de escalado. recommendation_prerequisites: '[Datadog Agent](/agent/)' - recommendation_type: Terminate Compute Instance - resource_type: Compute Instance + recommendation_type: Downsize Compute Instance Group + resource_type: Compute Instance Group - category: Downsize cloud_provider: GCP - recommendation_description: Un escalador de grupo de instancias de cómputo con - una capacidad mínima de instancias que puede ser reducida. + recommendation_description: Un escalador automático de grupos de instancias de + cómputo con una capacidad mínima de instancias que se puede reducir. recommendation_prerequisites: '' recommendation_type: Reduce Minimum Capacity resource_type: Compute Instance Group - - category: Downsize + - category: Terminate cloud_provider: GCP - recommendation_description: Instancias de CloudSQL que están sobreaprovisionadas - y pueden ser reducidas. + recommendation_description: Instancias de CloudSQL con uso mínimo que se pueden + eliminar. recommendation_prerequisites: '' - recommendation_type: Downsize CloudSQL Database + recommendation_type: Delete Cloud SQL Instance resource_type: CloudSQL Instance - - category: Terminate + - category: Downsize cloud_provider: GCP - recommendation_description: Instancias de CloudSQL con uso mínimo que pueden ser - terminadas. + recommendation_description: Instancias de CloudSQL que están sobreaprovisionadas + y se pueden reducir. recommendation_prerequisites: '' - recommendation_type: Terminate CloudSQL Instance + recommendation_type: Downsize CloudSQL Database resource_type: CloudSQL Instance - category: Terminate cloud_provider: GCP @@ -607,29 +774,29 @@ multifiltersearch: resource_type: Storage Bucket - category: Migrate cloud_provider: GCP - recommendation_description: Los objetos en el bucket de almacenamiento pueden - ser migrados automáticamente a niveles de archivo para obtener mejores tarifas. + recommendation_description: Los objetos en el bucket de almacenamiento se pueden + migrar automáticamente a niveles de archivo para obtener mejores tarifas. recommendation_prerequisites: '' recommendation_type: Transition Cloud Storage Bucket to Autoclass resource_type: Storage Bucket - category: Downsize cloud_provider: AWS - recommendation_description: Clústeres de Kubernetes con alta inactividad en CPU - o memoria. + recommendation_description: Clústeres de Kubernetes con una elevada inactividad + en CPU o memoria. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Reduce Cluster Idle resource_type: Kubernetes Cluster - category: Downsize cloud_provider: Azure - recommendation_description: Clústeres de Kubernetes con alta inactividad en CPU - o memoria. + recommendation_description: Clústeres de Kubernetes con una elevada inactividad + en CPU o memoria. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Reduce Cluster Idle resource_type: Kubernetes Cluster - category: Downsize cloud_provider: GCP - recommendation_description: Clústeres de Kubernetes con alta inactividad en CPU - o memoria. + recommendation_description: Clústeres de Kubernetes con una elevada inactividad + en CPU o memoria. recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Reduce Cluster Idle resource_type: Kubernetes Cluster @@ -654,13 +821,30 @@ multifiltersearch: recommendation_prerequisites: '[Datadog Agent](/agent/)' recommendation_type: Downsize Deployment resource_type: Kubernetes Deployment + - category: Configure + cloud_provider: OpenAI + recommendation_description: Identifica las claves de API de OpenAI que ya utilizan + almacenamiento en caché de prompts por debajo de la tasa de aciertos objetivo + y recomienda mejorar la configuración de caché para reducir los costos de tokens + de entrada. + recommendation_prerequisites: '' + recommendation_type: Optimize Prompt Caching + resource_type: API Key + - category: Configure + cloud_provider: OpenAI + recommendation_description: Identifica las claves de API de OpenAI con un gasto + significativo en procesamiento prioritario y recomienda mover el tráfico tolerante + a la latencia al estándar para eliminar la prima de prioridad. + recommendation_prerequisites: '' + recommendation_type: Reduce OpenAI Priority Processing + resource_type: API Key headers: - filter_by: true id: category name: Categoría de recomendación - filter_by: true id: cloud_provider - name: Proveedor de nube + name: Proveedor - filter_by: true id: resource_type name: Tipo de recurso @@ -670,112 +854,136 @@ multifiltersearch: name: Descripción de la recomendación - id: recommendation_prerequisites name: Requisitos previos de la recomendación -title: Cloud Cost Recommendations +title: Recomendaciones de Cloud Cost --- ## Resumen {#overview} -Cloud Cost Recommendations proporciona recomendaciones para reducir su gasto en la nube optimizando el uso de sus recursos en la nube. Datadog genera un conjunto de recomendaciones combinando sus datos de observabilidad con los datos de facturación de su proveedor de nube subyacente para identificar recursos en la nube huérfanos, heredados o sobreaprovisionados. +[Cloud Cost Recommendations][1] proporciona recomendaciones sobre cómo reducir su gasto en la nube y en IA optimizando el uso de sus recursos en la nube y el uso de la API de IA/LLM. Datadog genera un conjunto de recomendaciones combinando sus datos de observabilidad con los datos de facturación de su proveedor subyacente para identificar recursos en la nube huérfanos, heredados o sobreaprovisionados, así como el uso no optimizado de IA. + +Las recomendaciones se ejecutan diariamente y se actualizan automáticamente en su cuenta tan pronto como se publican. -Las recomendaciones se ejecutan a diario y se actualizan automáticamente en su cuenta tan pronto como se publican las recomendaciones. +- Para **todos los recursos**, también se obtienen [Cloud Cost métricas][6] para ese recurso +- Para todos los **recursos de AWS** además de Kubernetes y EC2, las métricas de AWS también se obtienen de [AWS CloudWatch][7] -- Para **todos los recursos**, [las métricas de costos en la nube][6] también se extraen para ese recurso -- Para todos los **recursos de AWS** además de Kubernetes y EC2, las métricas de AWS también se extraen de [AWS CloudWatch][7] +{{< img src="cloud_cost/recommendations/cost_recommendations_1.png" alt="Pestaña de resumen con posibles ahorros mensuales, posibles ahorros anuales y número total de incidencias abiertas en la página de Cloud Cost Recommendations" style="width:100%;" >}} -{{< img src="cloud_cost/recommendations/cost_recommendations_1.png" alt="Pestaña de resumen con ahorros mensuales potenciales, ahorros anuales potenciales y el número total de casos abiertos en la página de Cloud Cost Recommendations" style="width:100%;" >}} +Puede ver la lógica detallada para cada tipo de recomendación, junto con las métricas de observabilidad o los datos de costos que se muestran en esta página. -Puede ver la lógica detallada para cada tipo de recomendación, junto con métricas de observabilidad o datos de costos mostrados en esta página. +Las recomendaciones admiten [Tag Pipelines][11], lo que le permite filtrar, agrupar y analizar recomendaciones utilizando las etiquetas estandarizadas de su organización. Cualquier regla de etiquetas configurada en Tag Pipelines se aplica automáticamente a las recomendaciones y [se normaliza][12]. -Las recomendaciones admiten [Tag Pipelines][11], lo que le permite filtrar, agrupar y analizar las recomendaciones utilizando las etiquetas estandarizadas de su organización. Cualquier regla de etiqueta configurada en [Tag Pipelines] se aplica automáticamente a las recomendaciones y [se normaliza][12]. +También puede consultar sus recomendaciones desde un agente de IA con la herramienta [`cost_recommendations`][17] en el Datadog MCP Server. ## Categorías de recomendaciones {#recommendation-categories} -A continuación se presentan las categorías de Cloud Cost Recommendations disponibles y sus descripciones. +A continuación se presentan las categorías de recomendaciones de Cloud Cost disponibles y sus descripciones. -| Categoría de Recomendación | Descripción | +| Categoría de recomendación | Descripción | |----------|-------------| -| Terminar | Recursos con señales de que el recurso no se utiliza o señales de muy baja utilización. Considere terminar o eliminar estos recursos para reducir sus costos. | -| Migrar | Recursos con señales de utilización moderadamente baja u otras ineficiencias. Considere ajustar el tipo de instancia u otros parámetros. | -| Downsize | Recursos que están subutilizados o sobreaprovisionados. Considere ajustar el tamaño u otros parámetros para reducir costos. | -| Comprar | Recursos con cargos bajo demanda y tiempo de actividad extendido. La compra de una reserva o un Plan de Ahorros puede reducir el costo amortizado del recurso. | -| Configure | Recursos con opciones de configuración que se pueden ajustar para reducir costos sin cambiar la capacidad o terminar el recurso. | +| Terminar | Recursos con señales de que el recurso no se utiliza o tiene una utilización muy baja. Considere terminar o eliminar estos recursos para reducir sus costos. | +| Migre | los recursos con señales de utilización moderadamente bajas u otras ineficiencias. Considere ajustar el tipo de instancia u otros parámetros. | +| Reduzca | los recursos que están subutilizados o sobreaprovisionados. Considere ajustar el tamaño u otros parámetros para reducir costos. | +| Adquiera | recursos con cargos bajo demanda y tiempo de actividad extendido. La compra de una reserva o un Savings Plan puede reducir el costo amortizado del recurso. | +| Configure | los recursos con opciones de configuración que se puedan ajustar para reducir costos sin cambiar la capacidad ni terminar el recurso. | ## Requisitos previos {#prerequisites} -Los siguientes son los requisitos necesarios para recibir Cloud Cost Recommendations: +Los siguientes son los requisitos necesarios para recibir recomendaciones de Cloud Cost: -- Cuentas de proveedores de nube (para todas las Cloud Cost Recommendations deseadas) -- [Integración de AWS y recolección de recursos][3] (para recomendaciones de AWS) -- [Integración de Azure y recolección de recursos][8] (para recomendaciones de Azure) -- [Integración de GCP y recolección de recursos][10] (para recomendaciones de GCP) -- [Datadog Agent integration][5] (for Downsize recommendations) +- Cuentas de proveedor (para todas las recomendaciones de Cloud Cost deseadas) +- [Integración y recopilación de recursos de AWS][3] (para recomendaciones de AWS) +- [Integración y recopilación de recursos de Azure][8] (para recomendaciones de Azure) +- [Integración y recopilación de recursos de GCP][10] (para recomendaciones de GCP) +- [Integración de OpenAI][18] (para recomendaciones de OpenAI) +- [Integración de Anthropic][19] (para recomendaciones de Anthropic) +- [Datadog Agent integration][5] (para recomendaciones de reducción de tamaño) ## Configuración {#setup} Para cada cuenta de nube de la que desee recibir recomendaciones: 1. Configure [Cloud Cost Management][2] para enviar datos de facturación a Datadog. - - Para Azure, esto requiere utilizar el método de Registro de Aplicaciones para recolectar datos de facturación. -1. Habilite [la recolección de recursos][3] para recomendaciones. - - Para AWS, habilite la recolección de recursos en la pestaña {{< ui >}}Resource Collection{{< /ui >}} del [AWS integration tile][4]. - - Para Azure, habilite la recolección de recursos con la integración apropiada. Si su organización está en el sitio de Datadog US3, el [Azure Native Integration][9] habilita esto automáticamente a través de la recolección de métricas. Para todos los demás sitios, se requiere habilitar la recolección de recursos dentro del [Azure integration tile][8]. - - Para GCP, habilite la recolección de recursos en la pestaña {{< ui >}}Resource Collection{{< /ui >}} del [Google Cloud Platform integration tile][10]. -1. Instale el [Datadog Agent][5] (requerido para Downsize recommendations). + - Para Azure, esto requiere utilizar el método de registro de aplicaciones para recopilar datos de facturación. +1. Habilite la [recopilación de recursos][3] para obtener recomendaciones. + - Para AWS, habilite la recopilación de recursos en la pestaña {{< ui >}}Resource Collection{{< /ui >}} del [mosaico de integración de AWS][4]. + - Para Azure, habilite la recopilación de recursos con la integración adecuada. Si su organización se encuentra en el sitio US3 de Datadog, el [Azure Native Integration][9] habilita esto automáticamente a través de la recopilación de métricas. Para todos los demás sitios, es necesario habilitar la recopilación de recursos dentro del [Azure integration tile][8]. + - Para GCP, habilite la recopilación de recursos en la pestaña {{< ui >}}Resource Collection{{< /ui >}} del [Google Cloud Platform integration tile][10]. +1. Instale el [Datadog Agent][5] (necesario para las recomendaciones de reducción de tamaño). + +**Nota**: Cloud Cost Recommendations admite la facturación en las monedas que no sean USD de los clientes. + +## Riesgo y nivel de esfuerzo {#risk-and-level-of-effort} + +Cada recomendación incluye una puntuación de **Riesgo** y una puntuación de **Nivel de esfuerzo** para ayudarle a priorizar qué recomendaciones aplicar primero. Ambas puntuaciones utilizan una escala de {{< ui >}}Low{{< /ui >}}, {{< ui >}}Medium{{< /ui >}} y {{< ui >}}High{{< /ui >}}. Aparecen como las columnas {{< ui >}}Risk{{< /ui >}} y {{< ui >}}Effort{{< /ui >}} en la tabla {{< ui >}}Active Recommendations{{< /ui >}} y en el panel lateral de cada recomendación. + +| Riesgo | Descripción | +|--------|-------------| +| {{< ui >}}Low{{< /ui >}} | Seguro y fácil de deshacer: sin datos en riesgo o totalmente recuperables, recurso fácilmente recreable, aislado, sin impacto en el tiempo de ejecución. | +| {{< ui >}}Medium{{< /ui >}} | Recuperable pero requiere esfuerzo: datos o recursos restaurables mediante instantánea o reaprovisionamiento, impacto limitado a una aplicación o carga de trabajo, solo una breve interrupción. | +| {{< ui >}}High{{< /ui >}} | Difícil de deshacer o de alto impacto si es incorrecto: pérdida de datos irreversible, un recurso que no se puede recrear, amplio radio de impacto o posible tiempo de inactividad en una carga de trabajo activa. | + + +| Nivel de esfuerzo | Descripción | +|--------|-------------| +| {{< ui >}}Low{{< /ui >}} | Un cambio rápido que toma minutos. Generalmente un solo interruptor de consola o llamada a API, y totalmente automatizable. | +| {{< ui >}}Medium{{< /ui >}} | Un esfuerzo moderado que toma de horas a días. Requiere algo de scripting, pruebas o coordinación con otro equipo. | +| {{< ui >}}High{{< /ui >}} | Un esfuerzo importante que toma semanas. Un cambio arquitectónico o coordinación entre varios equipos.| -**Nota**: Cloud Cost Recommendations admite la facturación en monedas que no sean USD de los clientes. +Utilice las columnas {{< ui >}}Risk{{< /ui >}} y {{< ui >}}Effort{{< /ui >}} para priorizar las recomendaciones que son de bajo riesgo, bajo esfuerzo, o ambas. -## Estados de recomendaciones {#recommendation-statuses} +## Estados de las recomendaciones {#recommendation-statuses} -Asigne un estado a cada recomendación para rastrear el progreso de la optimización de costos en sus equipos. Los estados persisten cuando las recomendaciones se regeneran diariamente. No necesita volver a clasificar las mismas recomendaciones. +Asigne un estado a cada recomendación para realizar un seguimiento del progreso de la optimización de costos en sus equipos. Los estados persisten cuando las recomendaciones se regeneran diariamente. No necesita volver a clasificar las mismas recomendaciones. | Estado | Descripción | |--------|-------------| | {{< ui >}}Open{{< /ui >}} | (Predeterminado) La recomendación no ha sido clasificada. | | {{< ui >}}In Progress{{< /ui >}} | Se está trabajando para abordar esta recomendación. | -| {{< ui >}}Completed{{< /ui >}} | La acción recomendada se ha tomado o ya no es relevante. | -| {{< ui >}}Dismissed{{< /ui >}} | No se planea trabajo para esta recomendación durante el período especificado al descartarla. | +| {{< ui >}}Completed{{< /ui >}} | La acción recomendada ha sido tomada o ya no es relevante. | +| {{< ui >}}Dismissed{{< /ui >}} | No se planea realizar ningún trabajo para esta recomendación durante el período de tiempo especificado al descartarla. | ### Filtrar recomendaciones por estado {#filter-recommendations-by-status} -Utilice las pestañas de estado en la parte superior de la [{{< ui >}}Cloud Cost Recommendations{{< /ui >}}][1] página para filtrar la lista por estado. Las pestañas disponibles son {{< ui >}}Open{{< /ui >}}, {{< ui >}}In Progress{{< /ui >}}, {{< ui >}}Completed{{< /ui >}} y {{< ui >}}Dismissed{{< /ui >}}. Cada pestaña muestra el total estimado de ahorros para las recomendaciones en ese estado. +Utilice las pestañas de estado en la parte superior de la página [{{< ui >}}Cloud Cost Recommendations{{< /ui >}}][1] para filtrar la lista por estado. Las pestañas disponibles son {{< ui >}}Open{{< /ui >}}, {{< ui >}}In Progress{{< /ui >}}, {{< ui >}}Completed{{< /ui >}} y {{< ui >}}Dismissed{{< /ui >}}. Cada pestaña muestra el ahorro total estimado para las recomendaciones en ese estado. -### Rastrear ahorros por estado {#track-savings-by-status} +### Seguimiento de ahorros por estado {#track-savings-by-status} -Cada pestaña de estado muestra el total estimado de ahorros para las recomendaciones en ese estado: +Cada pestaña de estado muestra el ahorro total estimado para las recomendaciones en ese estado: -- {{< ui >}}Open{{< /ui >}}: Ahorros potenciales de recomendaciones que no han sido clasificadas. -- {{< ui >}}In Progress{{< /ui >}}: Ahorros estimados de recomendaciones con trabajo en curso. -- {{< ui >}}Completed{{< /ui >}}: Ahorros realizados de recomendaciones donde se ha tomado la acción recomendada. -- {{< ui >}}Dismissed{{< /ui >}}: Ahorros estimados de recomendaciones que han sido desestimadas. +- {{< ui >}}Open{{< /ui >}}: Ahorros potenciales de las recomendaciones que no han sido clasificadas. +- {{< ui >}}In Progress{{< /ui >}}: Ahorros estimados de las recomendaciones con trabajo en curso. +- {{< ui >}}Completed{{< /ui >}}: Ahorros realizados de las recomendaciones donde se ha tomado la acción recomendada. +- {{< ui >}}Dismissed{{< /ui >}}: Ahorros estimados de las recomendaciones que han sido descartadas. ### Cambiar el estado de una recomendación {#change-a-recommendation-status} Puede cambiar el estado de una recomendación de tres maneras: -- **Actualización masiva**: Seleccione una o más recomendaciones en {{< ui >}}Active Recommendations{{< /ui >}}, luego elija un estado en la barra de herramientas sobre la tabla para aplicarlo a todas las recomendaciones seleccionadas. +- **Actualización masiva**: Seleccione una o más recomendaciones en {{< ui >}}Active Recommendations{{< /ui >}}, luego elija un estado de la barra de herramientas sobre la tabla para aplicarlo a todas las recomendaciones seleccionadas. - **Desde la tabla**: Utilice el menú desplegable de estado en la columna {{< ui >}}Status{{< /ui >}} para seleccionar un nuevo estado directamente de la lista de recomendaciones. - **Desde el panel lateral**: Haga clic en una recomendación para abrir el panel lateral, luego utilice el menú desplegable de estado para seleccionar un nuevo estado. -## Acciones sobre recomendaciones {#recommendation-action-taking} -Puede actuar sobre las recomendaciones para ahorrar dinero y optimizar costos. Cloud Cost Recommendations soportan Jira, 1-click Workflow Automation y Datadog Case Management. Las recomendaciones de volúmenes EBS y GP2 EBS no utilizados también soportan 1-click Workflow Automation. Consulte los siguientes detalles para cada opción de toma de acción: +## Ejecución de acciones de recomendación {#recommendation-action-taking} +Puede actuar sobre las recomendaciones para ahorrar dinero y optimizar los costos. Las recomendaciones de Cloud Cost admiten Jira, 1-click Workflow Automation y Datadog Work Management. Las recomendaciones de volúmenes EBS y GP2 EBS no utilizados también admiten 1-click Workflow Automation. Consulte los siguientes detalles para cada opción de acción: -- **Jira**: Cree problemas de Jira directamente desde el panel lateral de recomendaciones o seleccionando múltiples recomendaciones en la lista {{< ui >}}Active Recommendations{{< /ui >}} y haciendo clic en {{< ui >}}Create Jira issue{{< /ui >}}. Los problemas creados están etiquetados y enlazan de vuelta a la recomendación en Datadog. +- **Jira**: Cree incidencias de Jira directamente desde el panel lateral de recomendaciones o seleccionando varias recomendaciones en la lista {{< ui >}}Active Recommendations{{< /ui >}} y haciendo clic en {{< ui >}}Create Jira issue{{< /ui >}}. Las incidencias creadas se etiquetan y vinculan de vuelta a la recomendación en Datadog. - Para filtrar recomendaciones por estado de Jira, utilice las siguientes opciones de consulta: - - `@jira_issues.issue_key:*` - Muestre solo las recomendaciones con un problema de Jira - - `-@jira_issues.issue_key:*` - Muestre solo las recomendaciones sin un problema de Jira - - `jira_issues.issue_key:ABC*` - Filtre por prefijo de proyecto específico de Jira + Para filtrar las recomendaciones por estado de Jira, utilice las siguientes opciones de consulta: + - `@jira_issues.issue_key:*` - Mostrar solo las recomendaciones con una incidencia de Jira + - `-@jira_issues.issue_key:*` - Mostrar solo las recomendaciones sin una incidencia de Jira + - `jira_issues.issue_key:ABC*` - Filtrar por prefijo de proyecto de Jira específico -- **[Bits Code][14] correcciones de código**: Las correcciones de código están disponibles para recomendaciones aplicables de S3 y DynamoDB, así como para la recomendación de Downsize Kubernetes Deployment. En estas situaciones, Bits Code crea pull requests listos para producción para implementar cambios en los recursos de la nube y optimizaciones de costos en Terraform o Helm charts, respectivamente. [Set up Bits Code][13] para usar esta función. -- **1-click Workflow Automation actions**: Las acciones están disponibles para un conjunto limitado de recomendaciones, permitiendo a los usuarios ejecutar las acciones sugeridas, como hacer clic en {{< ui >}}Delete EBS Volume{{< /ui >}}, directamente dentro de Cloud Cost Management. -- **[Cost Optimization Automation][15]**: Configure automatizaciones que actúen sobre las recomendaciones de manera continua en un horario recurrente. Las automatizaciones están limitadas a cuentas, regiones y etiquetas específicas e incluyen salvaguardias como instantáneas previas a la acción y aprobación humana opcional a través de Slack o Microsoft Teams. -- **Datadog Case Management**: Los usuarios pueden ir al panel lateral de recomendaciones y hacer clic en {{< ui >}}Create Case{{< /ui >}} para generar un caso para gestionar y tomar acción sobre las recomendaciones. -- **Descartar**: Utilice {{< ui >}}Dismiss{{< /ui >}} en el panel lateral de recomendaciones para ocultar una recomendación durante un período de tiempo elegido y proporcionar una razón. Las recomendaciones descartadas se mueven a la pestaña {{< ui >}}Dismissed{{< /ui >}} +- **[Bits Code][14] correcciones de código**: Las correcciones de código están disponibles para las recomendaciones de S3 y DynamoDB aplicables, así como para la recomendación de reducir el tamaño de la implementación de Kubernetes. En estas situaciones, Bits Code crea pull requests listos para producción para implementar cambios en los recursos de la nube y optimizaciones de costos en Terraform o Helm charts, respectivamente. [Configure Bits Code][13] para usar esta función. +- **1-click Workflow Automation actions**: Las acciones están disponibles para un conjunto limitado de recomendaciones, lo que permite a los usuarios ejecutar las acciones sugeridas, como hacer clic en {{< ui >}}Delete EBS Volume{{< /ui >}}, directamente dentro de Cloud Cost Management. +- **[Automatizaciones de optimización de costos][15]**: Configure automatizaciones que actúen sobre las recomendaciones de forma continua en un horario recurrente. Las automatizaciones tienen un alcance limitado a cuentas, regiones y etiquetas específicas, e incluyen medidas de seguridad como instantáneas previas a la acción y aprobación humana opcional a través de Slack o Microsoft Teams. +- **[Notifications][16]**: Configure reglas de notificación que envíen un resumen recurrente por Slack de las recomendaciones coincidentes, sin realizar ninguna acción. +- **Datadog Case Management**: Los usuarios pueden ir al panel lateral de recomendaciones y hacer clic en {{< ui >}}Create Case{{< /ui >}} para generar una incidencia para gestionar y tomar medidas sobre las recomendaciones. +- **Descartar**: Utilice {{< ui >}}Dismiss{{< /ui >}} en el panel lateral de recomendaciones para ocultar una recomendación durante un período de tiempo elegido y proporcionar un motivo. Las recomendaciones descartadas se mueven a la pestaña {{< ui >}}Dismissed{{< /ui >}}. ## Descripciones de recomendaciones y recursos {#recommendation-and-resource-descriptions} {{< multifilter-search >}} -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -791,6 +999,10 @@ Puede actuar sobre las recomendaciones para ahorrar dinero y optimizar costos. C [10]: https://app.datadoghq.com/integrations/gcp [11]: /es/cloud_cost_management/allocation/tag_pipelines/ [12]: /es/cloud_cost_management/tags/#how-tags-are-normalized -[13]: /es/bits_ai/bits_ai_dev_agent/setup -[14]: /es/bits_ai/bits_ai_dev_agent/ -[15]: /es/cloud_cost_management/recommendations/cost_optimization_automation/ \ No newline at end of file +[13]: /es/bits_ai/bits_code/setup +[14]: /es/bits_ai/bits_code/ +[15]: /es/cloud_cost_management/recommendations/cost_optimization_automation/ +[16]: /es/cloud_cost_management/recommendations/notifications/ +[17]: /es/mcp_server/tools/#cost_recommendations +[18]: /es/cloud_cost_management/setup/saas_costs/?tab=openai#configure-your-saas-accounts +[19]: /es/cloud_cost_management/setup/saas_costs/?tab=anthropic#configure-your-saas-accounts \ No newline at end of file diff --git a/hugo/content/es/containers/guide/configure-autodiscovery-with-the-datadoginstrumentation-crd.md b/hugo/content/es/containers/guide/configure-autodiscovery-with-the-datadoginstrumentation-crd.md new file mode 100644 index 00000000000..8aa3daf0e42 --- /dev/null +++ b/hugo/content/es/containers/guide/configure-autodiscovery-with-the-datadoginstrumentation-crd.md @@ -0,0 +1,281 @@ +--- +description: Configure las verificaciones y los registros de Autodiscovery para las + cargas de trabajo de Kubernetes a través del recurso personalizado DatadogInstrumentation + en lugar de anotaciones de pod. +further_reading: +- link: /containers/kubernetes/integrations/ + tag: Documentación + text: Configure integraciones con Autodiscovery +- link: /getting_started/containers/autodiscovery/ + tag: Documentación + text: Introducción a Autodiscovery +- link: /containers/guide/autodiscovery-examples/ + tag: Documentación + text: Escenarios y ejemplos de Autodiscovery +- link: /containers/cluster_agent/ + tag: Documentación + text: Datadog Cluster Agent +title: Configure Autodiscovery con el CRD DatadogInstrumentation +--- +## Descripción general {#overview} + +El recurso personalizado (CR) `DatadogInstrumentation` le permite configurar las verificaciones y los registros de [Autodiscovery][1] con un único recurso de Kubernetes en lugar de [anotaciones de pod][2]. Con este enfoque, puede habilitar, actualizar y eliminar configuraciones de integración sin editar su Agent o aplicación y activar un despliegue. + +Utilice el CR `DatadogInstrumentation` cuando desee: + +- Configure las verificaciones y los registros sin modificar los manifiestos de carga de trabajo ni agregar anotaciones. +- Utilice una especificación de recurso estructurada con validación en lugar de JSON sin formato en las anotaciones. +- Administre de forma centralizada la configuración de Autodiscovery por carga de trabajo como un recurso de Kubernetes dedicado y con control de versiones. +- Actualice o elimine la configuración de Autodiscovery sin reiniciar los pods de su aplicación. + +Cuando crea o actualiza un recurso `DatadogInstrumentation`, el [Datadog Cluster Agent][3] valida el destino, informa el estado del recurso y aplica la configuración de Autodiscovery a la carga de trabajo seleccionada. + +## Requisitos {#requirements} + +Actualice a la **v7.82+** del Datadog Agent y Cluster Agent e instale el CRD `DatadogInstrumentation` con una de las siguientes opciones: +- Datadog Operator **v1.29** o posterior. +- Datadog Helm chart **v3.236.0** o posterior. + +## Configuración {#setup} + +El controlador `DatadogInstrumentation` se ejecuta en el Cluster Agent y está deshabilitado de forma predeterminada. Habilítelo con Datadog Operator o Helm. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +1. Actualice sus repositorios de Helm: + +```shell +helm repo update +``` + +2. Actualice el Datadog Operator: + +```shell +helm upgrade datadog-operator datadog/datadog-operator +``` + +3. Agregue la anotación `agent.datadoghq.com/instrumentation-crd-enabled` a su recurso `DatadogAgent`. El Cluster Agent debe ser v7.82.0 o posterior. + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog + annotations: + agent.datadoghq.com/instrumentation-crd-enabled: "true" +spec: + global: + [...] +``` + +4. Aplique el cambio: + +```shell +kubectl apply -f datadog-agent.yaml +``` + +El Operator establece automáticamente las variables de entorno necesarias para el Cluster Agent y el Node Agent, y configura el RBAC necesario para el Cluster Agent. + +{{% /tab %}} +{{% tab "Helm" %}} + +1. Actualice sus repositorios de Helm: + +```shell +helm repo update +``` + +2. En su archivo `datadog-values.yaml`, habilite el controlador: + +```yaml +datadog: + instrumentationCrd: + enabled: true +``` + +3. Actualice su versión: + +```shell +helm upgrade -f datadog-values.yaml datadog/datadog +``` + +{{% /tab %}} +{{< /tabs >}} + +Asegúrese de que el CRD `DatadogInstrumentation` esté instalado antes de crear recursos: + +```shell +kubectl get crd datadoginstrumentations.datadoghq.com +``` + +Si administra los CRD de Datadog por separado, instale o actualice el chart de Helm de los CRD de Datadog: + +```shell +helm upgrade --install datadog-crds datadog/datadog-crds +``` + +## Cargas de trabajo de destino {#target-workloads} + +`DatadogInstrumentation` (DDI) para Autodiscovery consta de tres partes: + +- `spec.targetRef`: identifica la carga de trabajo que se va a configurar, mediante `apiVersion`, `kind` y `name`. Su recurso personalizado y la carga de trabajo de destino deben estar en el mismo espacio de nombres. +- `spec.config.checks`: define las verificaciones de integración que se ejecutarán en su carga de trabajo. +- `spec.config.logs`: define los registros que se recopilarán de su carga de trabajo. + +Puede dirigirse a los siguientes recursos de Kubernetes: + +| Destino | Grupo/versión/recurso | Versión mínima del Agent | Notas | +|---|---|---|---| +| Deployment | `apps/v1/deployments` | 7.82.0 | | +| DaemonSet | `apps/v1/daemonsets` | 7.82.0 | | +| StatefulSet | `apps/v1/statefulsets` | 7.82.0 | | +| CronJob | `batch/v1/cronjobs` | 7.82.0 | | +| Job | `batch/v1/jobs` | 7.82.0 | | +| Service | `core/v1/services` | 7.82.0 | Solo admite verificaciones. Consulte [Servicios de destino](#target-services). | +| Rollout | `argoproj.io/v1alpha1/rollouts` | 7.83.0 | Requiere [Argo Rollouts][7]. | + +Este ejemplo configura una [integración de Redis][4] para un `StatefulSet` llamado `redis`, replicando este [ejemplo basado en anotaciones][2]. + +```yaml +apiVersion: datadoghq.com/v1alpha1 +kind: DatadogInstrumentation +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: apps/v1 + kind: StatefulSet + name: redis + config: + checks: + - integration: redisdb + containerName: redis + initConfig: {} + instances: + - host: "%%host%%" + port: "6379" + password: "%%env_REDIS_PASSWORD%%" + logs: + - containerName: redis + tags: + - env:demo +``` + +Aplique el recurso: + +```shell +kubectl apply -f redis-instrumentation.yaml +``` + +Verifique el estado del recurso: + +```shell +kubectl describe datadoginstrumentation -n +``` + +Cada entrada en `checks` acepta los siguientes campos: + +`integration` +: Obligatorio. El nombre de la integración de Datadog que se ejecutará, por ejemplo `redisdb`. + +`containerName` +: Obligatorio para destinos de carga de trabajo. El valor debe coincidir con un nombre de contenedor en el pod. Omita este campo para destinos de servicio. + +`initConfig` +: Opcional. La sección `init_config` para la integración. + +`instances` +: Opcional. Verifique la configuración de la instancia. Cada instancia puede utilizar [variables de plantilla de Autodiscovery][5], incluyendo `%%host%%`. + +Cada entrada en `logs` acepta las mismas opciones de recopilación de registros que las anotaciones de registro de Autodiscovery, tales como `tags`, `type` y `path`. Cada entrada requiere un `containerName` que coincida con un contenedor en el pod. + +### Servicios objetivo {#target-services} + +Apuntar a un `Service` configura una [verificación de punto de conexión][6] similar a una anotación en un servicio de Kubernetes. + +- Datadog programa una verificación de punto de conexión para cada punto de conexión del Servicio. +- `%%host%%` se resuelve a la IP del punto de conexión. +- Si un punto de conexión está respaldado por un Pod de Kubernetes, Datadog añade las etiquetas de Pod recopiladas para ese Pod. +- Si un punto de conexión no está respaldado por un Pod, Datadog convierte la verificación en una verificación de clúster regular sin etiquetas específicas de Pod. + +
+ +Los objetivos de servicio no utilizan `containerName`; omita ese campo. + +
+ +A continuación se muestra un ejemplo de configuración de una verificación de nginx para un `Service` de Kubernetes: + +```yaml +apiVersion: datadoghq.com/v1alpha1 +kind: DatadogInstrumentation +metadata: + name: + namespace: +spec: + targetRef: + apiVersion: v1 + kind: Service + name: nginx + config: + checks: + - integration: nginx + initConfig: {} + instances: + - name: "My NGINX Service Endpoints" + nginx_status_url: "http://%%host%%:%%port%%/status/" +``` + +## Precedencia {#precedence} + +Cuando más de una fuente de configuración se aplica a una carga de trabajo, el Datadog Agent las resuelve en el siguiente orden (primero la mayor precedencia): + +1. Anotaciones de Pod +2. `DatadogInstrumentation` recurso personalizado +3. Configuración estática, como auto-configuración o archivos montados + +Si una carga de trabajo ya tiene una configuración de Autodiscovery basada en anotaciones para una verificación o recopilación de registros, su configuración de `DatadogInstrumentation` no la anula. + +## Un recurso por destino {#one-resource-per-target} + +Una carga de trabajo o un servicio puede ser el destino de solo un recurso `DatadogInstrumentation` dentro de un espacio de nombres. Un webhook de validación rechaza un recurso cuyo `targetRef` ya pertenece a otro recurso, o cuyo `targetRef` apunta a un tipo no admitido. + +## Verifique las verificaciones programadas {#verify-scheduled-checks} + +El estado del recurso muestra si el Cluster Agent aceptó la configuración. Para verificar que las verificaciones estén programadas, ejecute `agent configcheck` en el Node Agent donde se ejecuta la carga de trabajo de destino. + +Las verificaciones configuradas a través de un recurso `DatadogInstrumentation` listan a `instrumentation-checks` como el proveedor de configuración y a `datadoginstrumentation:/` como la fuente de configuración. El siguiente ejemplo muestra la salida para una verificación `redisdb` programada desde un recurso que tiene como destino una carga de trabajo de Redis: + +```text +> agent configcheck +# other configs... + +=== redisdb check === +Configuration provider: instrumentation-checks +Configuration source: datadoginstrumentation:cache/redis-instrumentation +Config for instance ID: redisdb:d5dd267b580bc10e +host: 10.244.0.7 +password: "********" +port: 6379 +Init Config: +{} +Log Config: +- tags: + - env:demo +Auto-discovery IDs: +* redis +``` + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/getting_started/containers/autodiscovery/ +[2]: /es/containers/kubernetes/integrations/ +[3]: /es/containers/cluster_agent/ +[4]: /es/integrations/redisdb/ +[5]: /es/containers/guide/template_variables/ +[6]: /es/containers/cluster_agent/endpointschecks/ +[7]: https://argoproj.github.io/rollouts/ \ No newline at end of file diff --git a/hugo/content/es/containers/kubernetes/distributions.md b/hugo/content/es/containers/kubernetes/distributions.md index 39f331df662..410a6ece3b5 100644 --- a/hugo/content/es/containers/kubernetes/distributions.md +++ b/hugo/content/es/containers/kubernetes/distributions.md @@ -1,56 +1,56 @@ --- aliases: - /es/agent/kubernetes/distributions -description: Instrucciones de instalación y configuración específicas de cada plataforma - para el Datadog Agent en diferentes distribuciones Kubernetes +description: Instrucciones de instalación y configuración específicas de la plataforma + para Datadog Agent en varias distribuciones de Kubernetes further_reading: - link: agent/kubernetes/log tag: Documentación - text: Recopilar tus logs de aplicación + text: Recopile los registros de su aplicación - link: /agent/kubernetes/apm tag: Documentación - text: Recopila tus trazas de aplicaciones + text: Recopile las trazas de su aplicación - link: /agent/kubernetes/prometheus tag: Documentación - text: Recopila tus métricas de Prometheus + text: Recopile sus métricas de Prometheus - link: /agent/kubernetes/integrations tag: Documentación - text: Recopila las métricas de tus aplicaciones y logs automáticamente + text: Recopile automáticamente las métricas y los registros de sus aplicaciones - link: /agent/guide/autodiscovery-management tag: Documentación - text: Limita la recopilación de datos solo a un subconjunto de contenedores + text: Limitar la recopilación de datos solo a un subconjunto de contenedores - link: /agent/kubernetes/tag tag: Documentación - text: Asignar etiquetas (tags) a todos los datos emitidos por un contenedor + text: Asignar etiquetas a todos los datos emitidos por un contenedor - link: https://www.datadoghq.com/blog/monitor-vsphere-tanzu-kubernetes-grid-with-datadog/ tag: Blog - text: Monitorizar Tanzu Kubernetes Grid en vSphere + text: Monitor Tanzu Kubernetes Grid en vSphere title: Distribuciones de Kubernetes --- +## Descripción general {#overview} -## Información general - -El objetivo de esta sección es documentar aspectos específicos y proporcionar una buena base para la configuración de las principales distribuciones Kubernetes. -Estas configuraciones se pueden personalizar para añadir cualquier función de Datadog. +Esta sección tiene como objetivo documentar los detalles y proporcionar una buena configuración base para todas las distribuciones principales de Kubernetes. +Estas configuraciones pueden personalizarse posteriormente para añadir cualquier función de Datadog. * [AWS Elastic Kubernetes Service (EKS)](#EKS) * [Azure Kubernetes Service (AKS)](#AKS) * [Google Kubernetes Engine (GKE)](#GKE) * [Red Hat OpenShift](#Openshift) * [Rancher](#Rancher) -* [Oracle Container Engine for Kubernetes (OKE)](#OKE) +* [Oracle Container Engine para Kubernetes (OKE)](#OKE) +* [vSphere Kubernetes Service (VKS)](#VKS) * [vSphere Tanzu Kubernetes Grid (TKG)](#TKG) ## AWS Elastic Kubernetes Service (EKS) {#EKS} -No es necesaria ninguna configuración específica. +No se requiere ninguna configuración específica. {{< tabs >}} {{% tab "Datadog Operator" %}} -En un clúster de EKS, puedes instalar el Operator utilizando [Helm][1] o como un [complemento EKS][2]. +En un clúster de EKS, puede instalar el Operador de Datadog usando [Helm][1] o como un [complemento de EKS][2]. -La siguiente configuración está pensada para funcionar con cualquiera de las dos configuraciones (Helm o complemento EKS) cuando el Agent está instalado en el mismo espacio de nombres que el Datadog Operator. +La configuración a continuación está diseñada para funcionar con cualquiera de las dos configuraciones (Helm o complemento de EKS) cuando Datadog Agent está instalado en el mismo espacio de nombres que el Datadog Operator. ```yaml kind: DatadogAgent @@ -74,13 +74,13 @@ spec: ## Azure Kubernetes Service (AKS) {#AKS} -### Admission Controller -La función opcional [Admission Controller][1] requiere una configuración específica para evitar un error al conciliar el webhook. +### Controlador de admisión {#admission-controller} +La función opcional [Controlador de admisión][1] requiere una configuración específica para evitar un error al reconciliar el webhook. {{< tabs >}} {{% tab "Datadog Operator" %}} -Recurso Kubernetes del Datadog Agent: +Recurso de Kubernetes DatadogAgent: ```yaml kind: DatadogAgent @@ -103,13 +103,13 @@ spec: value: "true" ``` -Sustituye `` por tu [sitio Datadog][1]. Tu sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrate de seleccionar el SITIO correcto para tu cuenta a la derecha de esta página. +Reemplace `` con su [sitio de Datadog][1]. Su sitio es {{< region-param key="dd_site" code="true" >}}. (Asegúrese de que el SITIO correcto para su cuenta esté seleccionado a la derecha de esta página). [1]: /es/getting_started/site {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -122,30 +122,30 @@ providers: enabled: true ``` -La opción `providers.aks.enabled` establece la variable de entorno necesaria `DD_ADMISSION_CONTROLLER_ADD_AKS_SELECTORS="true"`. +La opción `providers.aks.enabled` establece la variable de entorno `DD_ADMISSION_CONTROLLER_ADD_AKS_SELECTORS="true"` necesaria para usted. {{% /tab %}} {{< /tabs >}} -### Rotación de certificados de servicio de Kubelet -Si tu clúster **no** tiene habilitada la [rotación de certificados de servicio de Kubelet][13], deberás proporcionar una configuración adicional para permitir que el Datadog Agent se conecte al Kubelet. La rotación de certificados de servicio de Kubelet está habilitada en los clústeres Kubernetes v1.27 y posteriores, en grupos de nodos actualizados después de julio de 2025. +### Rotación de certificados de servicio de Kubelet {#kubelet-serving-certificate-rotation} +Si su clúster **no** tiene habilitada la [rotación de certificados de servicio de Kubelet][13], debe proporcionar una configuración adicional para permitir que Datadog Agent se conecte al Kubelet. La rotación de certificados de servicio de Kubelet está habilitada en clústeres de Kubernetes 1.27 y superiores en grupos de nodos actualizados después de julio de 2025. -Tus nodos tienen esta función activada si tienen la etiqueta (label) `kubernetes.azure.com/kubelet-serving-ca=cluster`. Comprueba si todos tus nodos tienen esta etiqueta, ejecutando: +Sus nodos tienen esta función habilitada si tienen la etiqueta `kubernetes.azure.com/kubelet-serving-ca=cluster`. Verifique si todos sus nodos tienen esta etiqueta ejecutando: ```shell kubectl get nodes -L kubernetes.azure.com/kubelet-serving-ca ``` -Asegúrate de que todos tus nodos muestran `cluster`. +Asegúrese de que todos sus nodos muestren `cluster`. -#### Sin la rotación de certificados de servicio de Kubelet +#### Sin rotación de certificados de servicio de Kubelet {#without-kubelet-serving-certificate-rotation} -Si la rotación de certificados de servicio de Kubelet no está habilitada, proporciona la siguiente configuración adicional de Kubelet: +Si la rotación de certificados de servicio de Kubelet no está habilitada, proporcione la siguiente configuración adicional de Kubelet: {{< tabs >}} {{% tab "Datadog Operator" %}} -Recurso Kubernetes del Datadog Agent: +Recurso de Kubernetes DatadogAgent: ```yaml kind: DatadogAgent @@ -175,7 +175,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -196,31 +196,31 @@ providers: {{% /tab %}} {{< /tabs >}} -En estas versiones del nodo AKS, el certificado Kubelet AKS requiere cambiar el host Kubelet al `spec.nodeName` y la ubicación `hostCAPath` del certificado, como se ve en los fragmentos anteriores. Esto permite la verificación TLS. Sin estos cambios, el Agent no puede conectarse al Kubelet. +En estas versiones de nodo de AKS, el certificado Kubelet de AKS requiere cambiar el servidor de Kubelet a `spec.nodeName` y la ubicación `hostCAPath` del certificado, como se observa en los fragmentos anteriores. Esto habilita la verificación TLS. Sin estos cambios, el Agent no puede conectarse al Kubelet. -
Una vez habilitada la rotación de certificados de servicio de Kubelet en tu clúster, elimina esta configuración.
+
Una vez que la rotación del certificado de servicio de Kubelet esté habilitada en su clúster, elimine esta configuración.
-Cuando actualices tu clúster AKS, es posible que la función de rotación de certificados de servicio de Kubelet se active automáticamente, lo que puede afectar negativamente a tu Datadog Agent si utilizas la configuración especial anterior para hacer referencia al certificado `/etc/kubernetes/certs/kubeletserver.crt`. Cuando se activa la rotación de certificados de servicio de Kubelet, este certificado se elimina, lo que causa: +Cuando actualiza su clúster de AKS, es posible que vea la función de rotación del certificado de servicio de Kubelet habilitada automáticamente para usted, lo que puede afectar negativamente a su Datadog Agent si está utilizando la configuración especial anterior para hacer referencia al certificado `/etc/kubernetes/certs/kubeletserver.crt`. Cuando la rotación del certificado de servicio de Kubelet está habilitada, este certificado se elimina, lo que provoca: -- En Datadog Operator: El contenedor del Agent se apaga en `Error`, ya que no puede conectarse al Kubelet, y genera `Error while getting hostname, exiting: unable to reliably determine the host name` -- En Helm: El pod del Agent falla al arrancar con el evento de advertencia `MountVolume.SetUp failed for volume "kubelet-ca" : hostPath type check failed: /etc/kubernetes/certs/kubeletserver.crt is not a file` +- En el Datadog Operator: El contenedor del Agent se apaga en `Error`, ya que no puede conectarse al Kubelet, y registra `Error while getting hostname, exiting: unable to reliably determine the host name` +- En Helm: El pod del Agent no puede iniciarse con el evento de advertencia `MountVolume.SetUp failed for volume "kubelet-ca" : hostPath type check failed: /etc/kubernetes/certs/kubeletserver.crt is not a file` -En estos casos, elimina las configuraciones adicionales de Kubelet. +En estos casos, elimine las configuraciones adicionales de Kubelet. -Como alternativa, también puedes [conectarte al Kubelet sin verificación TLS](#without-tls-verification). +Como alternativa, también puede [conectarse al Kubelet sin verificación TLS](#without-tls-verification). -### Sin verificación TLS +### Sin verificación TLS {#without-tls-verification} -En algunos clústeres, la resolución DNS de `spec.nodeName` en pods no funciona en AKS. Esto afecta a: - - Nodos Windows - - Nodos Linux, cuando el clúster está configurado en una red virtual que utiliza DNS personalizados +En algunos clústeres, la resolución de DNS para `spec.nodeName` dentro de los Pods no funciona en AKS. Esto afecta a: + - Nodos de Windows + - Nodos de Linux, cuando el clúster está configurado en una red virtual que utiliza DNS personalizado -En este caso, utiliza la configuración AKS proporcionada a continuación para definir `tlsVerify: false` y eliminar cualquier configuración para la ruta del host Kubelet (que por defecto es `status.hostIP`). **No definas la ruta del host Kubelet y `tlsVerify: false` en la misma configuración**. +En este caso, utilice la configuración de AKS proporcionada a continuación para establecer `tlsVerify: false` y elimine cualquier configuración para la ruta del servidor de Kubelet (que tiene como valor predeterminado `status.hostIP`). **No establezca la ruta del servidor de Kubelet y `tlsVerify: false` en la misma configuración**. {{< tabs >}} {{% tab "Datadog Operator" %}} -Recurso Kubernetes del Datadog Agent: +Recurso de Kubernetes DatadogAgent: ```yaml kind: DatadogAgent @@ -247,7 +247,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -267,33 +267,44 @@ providers: ## Google Kubernetes Engine (GKE) {#GKE} -GKE se puede configurar con dos modos de funcionamiento diferentes: +GKE se puede configurar en dos modos de operación diferentes: + +- **Estándar**: Usted administra la infraestructura subyacente del clúster, lo que le brinda flexibilidad para configurar los nodos. +- **Autopilot**: GKE aprovisiona y administra la infraestructura subyacente del clúster, incluidos los nodos y los grupos de nodos, lo que le brinda un clúster optimizado con una experiencia sin intervención. + +Dependiendo del modo de operación de su clúster, el Datadog Agent debe configurarse de manera diferente. + +### Estándar {#standard} -- **Standard** (Estándar): tú gestionas la infraestructura subyacente del clúster, proporcionándole flexibilidad a la configuración de tu nodo. -- **Autopilot** (Piloto automático): GKE suministra y gestiona la infraestructura subyacente del clúster, incluidos los nodos y los grupos de nodos, lo que te ofrece un clúster optimizado que no necesita de tu intervención. +En el Agent 7.26 y versiones posteriores, GKE no requiere configuración adicional, ya sea que ejecute `Docker` o `containerd`. La única excepción es Container-Optimized OS (COS) con el gráfico de Helm. El Datadog Operator detecta GKE COS automáticamente. -En función del modo de funcionamiento de tu clúster, el Datadog Agent se debe configurar de diferentes formas. +{{< tabs >}} +{{% tab "Helm" %}} -### Standard (Estándar) +Personalizado `datadog-values.yaml`: -A partir del Agent v7.26, no se requiere ninguna configuración específica para GKE (tanto si ejecutas `Docker`, como si ejecutas `containerd`). +```yaml +providers: + gke: + cos: true +``` -**Nota**: Cuando se utiliza COS (Container-Optimized OS), `OOM Kill`basado en eBPF y los checks `TCP Queue Length` son compatibles a partir de la versión 3.0.1 de los charts de Helm. Para habilitar estos checks, configura los siguientes parámetros: -- `datadog.systemProbe.enableDefaultKernelHeadersPaths` en `false`. +{{% /tab %}} +{{< /tabs >}} -### Autopilot +### Autopilot {#autopilot} -Autopilot de GKE requiere algunas configuraciones que se muestran a continuación. +GKE Autopilot requiere cierta configuración, que se muestra a continuación. -Datadog recomienda especificar límites de recursos para el contenedor del Agent. Autopilot establece un límite por defecto relativamente bajo (50m CPU, 100Mi memoria) que puede llevar al contenedor del Agent a un cierre forzoso por error de memoria (OOMKill) rápidamente dependiendo de tu entorno. Si corresponde, también especifica límites de recursos para contenedores de Trace Agent, Process Agent y System-Probe. Además, es posible que quieras crear una clase de prioridad para el Agent para asegurarte de que sea programado. +Datadog recomienda que especifique los límites de recursos para el contenedor del Agent. Autopilot establece un límite predeterminado relativamente bajo (50m de CPU, 100Mi de memoria) que puede hacer que el contenedor del Agent sufra un OOMKill rápidamente, dependiendo de su entorno. Si corresponde, especifique también los límites de recursos para los contenedores Agent de trazas, Agent de procesos y System-Probe. Además, es posible que desee crear una clase de prioridad para el Agent a fin de garantizar que esté programado. -A partir del Agent `7.65.0+` y la versión `3.113.0+` del Helm chart, Datadog recomienda utilizar `datadog.kubelet.useApiServer` para que el Agent consulte la lista de pods desde el servidor de API. Evita utilizar el [puerto Kubelet de solo lectura obsoleto][12]. +A partir del Agent `7.65.0+` y la versión `3.113.0+` del gráfico de Helm, Datadog recomienda usar `datadog.kubelet.useApiServer` para que el Agente consulte la lista de pods desde el servidor de API. Evite usar el [puerto kubelet de solo lectura obsoleto][12]. {{< tabs >}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -349,19 +360,70 @@ providers: autopilot: true ``` +{{% /tab %}} + +{{% tab "Datadog Operator" %}} + +A partir de Datadog Operator `1.27.0+`, habilite el modo Autopilot con la anotación `experimental.agent.datadoghq.com/autopilot`. El Datadog Operator configura el Agent para GKE Autopilot, incluida la detección de pods del servidor de API y la WorkloadAllowlist requerida. + +Personalizado `datadog-agent.yaml`: + +```yaml +apiVersion: datadoghq.com/v2alpha1 +kind: DatadogAgent +metadata: + name: datadog + annotations: + experimental.agent.datadoghq.com/autopilot: "true" +spec: + global: + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + # The site of the Datadog intake to send Agent data to (example: `us3.datadoghq.com`) + # Default value is `datadoghq.com' (the US1 site) + # Documentation: https://docs.datadoghq.com/getting_started/site/ + site: + override: + nodeAgent: + containers: + agent: + resources: + requests: + cpu: 200m + memory: 256Mi + trace-agent: + resources: + requests: + cpu: 100m + memory: 200Mi + process-agent: + resources: + requests: + cpu: 100m + memory: 200Mi + system-probe: + resources: + requests: + cpu: 100m + memory: 400Mi +``` + {{% /tab %}} {{< /tabs >}} -### Spot Pods y clases de computación +### Pods Spot y clases de cómputo {#spot-pods-and-compute-classes} -El uso de [Spot Pods][10] en clústeres GKE Autopilot introduce [contaminaciones][9] en los nodos Spot GKE correspondientes. Cuando se utilizan Spot Pods, se requiere una configuración adicional para proporcionar al Agent DaemonSet una tolerancia coincidente. +El uso de [pods Spot][10] en clústeres de GKE Autopilot introduce [taints][9] en los nodos GKE Spot correspondientes. Al usar pods Spot, se requiere una configuración adicional para proporcionar al DaemonSet del Agent una tolerancia coincidente. {{< tabs >}} {{% tab "Helm" %}} + ```yaml agents: #(...) - # agents.tolerations -- Permitir al DaemonSet programar en nodos contaminados (requiere Kubernetes v1.6 o anteriores) + # agents.tolerations -- Allow the DaemonSet to schedule on tainted nodes (requires Kubernetes >= 1.6) tolerations: - effect: NoSchedule key: cloud.google.com/gke-spot @@ -369,12 +431,27 @@ agents: value: "true" ``` {{% /tab %}} + +{{% tab "Datadog Operator" %}} + +```yaml +spec: + override: + nodeAgent: + tolerations: + - effect: NoSchedule + key: cloud.google.com/gke-spot + operator: Equal + value: "true" +``` +{{% /tab %}} {{< /tabs >}} -Del mismo modo, cuando utilices [clases de computación GKE Autopilot][11] para ejecutar cargas de trabajo que tengan requisitos de hardware específicos, toma nota de las [contaminaciones][9] que GKE Autopilot está aplicando a estos nodos específicos y añade tolerancias coincidentes al Agent DaemonSet. Puedes hacer coincidir las tolerancias en tus pods correspondientes. Por ejemplo, para la clase de computación `Scale-Out` utiliza una tolerancia como: +De manera similar, al usar [GKE Autopilot Compute classes][11] para ejecutar cargas de trabajo que tienen requisitos de hardware específicos, tome nota de los [taints][9] que GKE Autopilot está aplicando a estos nodos específicos y agregue las tolerancias correspondientes al DaemonSet del Agent. Puede hacer coincidir las tolerancias en sus pods correspondientes. Por ejemplo, para la clase de cómputo `Scale-Out` use una tolerancia como: {{< tabs >}} {{% tab "Helm" %}} + ```yaml agents: #(...) @@ -386,28 +463,42 @@ agents: value: Scale-Out ``` {{% /tab %}} + +{{% tab "Datadog Operator" %}} + +```yaml +spec: + override: + nodeAgent: + tolerations: + - effect: NoSchedule + key: cloud.google.com/compute-class + operator: Equal + value: Scale-Out +``` +{{% /tab %}} {{< /tabs >}} ## Red Hat OpenShift {#Openshift} -OpenShift viene con seguridad reforzada por defecto con SELinux y SecurityContextConstraints (SCC). Como resultado de esto, requiere algunas configuraciones específicas: -- Acceso SCC elevado para el Node Agent y el Cluster Agent -- Es posible que los certificados de la API de Kubelet no siempre estén firmados por la CA para clústeres -- Se requieren tolerancias para programar el Node Agent en los nodos `master` y `infra` -- Se debe establecer el nombre del clúster, ya que no puede recuperarse automáticamente del proveedor de nube -- *(Opcional)* Define `hostNetwork: true` en el Node Agent para permitir que el Agent realice solicitudes a los servicios de metadatos del proveedor de la nube (IMDS). +OpenShift viene con seguridad reforzada de forma predeterminada con SELinux y SecurityContextConstraints (SCC). Como resultado, requiere algunas configuraciones específicas: +- Acceso SCC elevado para el Agent de nodo y el Agent de clúster +- Es posible que los certificados de la API de Kubelet no siempre estén firmados por la CA del clúster +- Se requieren tolerancias para programar el Agent de nodo en nodos `master` y `infra` +- El nombre del clúster debe establecerse, ya que no se puede recuperar automáticamente del proveedor de la nube +- *(Opcional)* Establezca `hostNetwork: true` en el Node Agent para permitir que el Agent realice solicitudes a los servicios de metadatos del proveedor de la nube (IMDS) -Esta configuración central es compatible con OpenShift v3.11 y OpenShift v4, pero funciona mejor con OpenShift v4. +Esta configuración principal es compatible con OpenShift 3.11 y OpenShift 4, pero funciona mejor con OpenShift 4. -Además, la recopilación de logs y APM también tienen requisitos ligeramente diferentes. +Además, la recopilación de registros y APM también tienen requisitos ligeramente diferentes. -El uso de Unix Domain Socket (UDS) para APM y DogStatsD puede funcionar en OpenShift. Sin embargo, Datadog no lo recomienda, ya que requiere permisos privilegiados adicionales y acceso SCC a **ambos**: tu Datadog Agent y tuu pod de aplicación. Datadog recomienda desactivar la opción UDS para evitarlo, permitiendo que el Admission Controller inyecte la [configuración TCP/IP][7] o [configuración de servicio][8] adecuada para la conectividad de APM. +El uso de Unix Domain Socket (UDS) para APM y DogStatsD puede funcionar en OpenShift. Sin embargo, Datadog no recomienda esto, ya que requiere permisos privilegiados adicionales y acceso SCC a **tanto** su pod de Datadog Agent como su pod de aplicación. Sin estos, su pod de aplicación puede fallar al implementarse. Datadog recomienda deshabilitar la opción UDS para evitar esto, permitiendo que el Controlador de admisión inyecte la [configuración TCP/IP][7] o la [configuración de servicio][8] adecuada para la conectividad APM. {{< tabs >}} {{% tab "Datadog Operator" %}} -Cuando utilices Datadog Operator en OpenShift, Datadog recomienda utilizar el Operator Lifecycle Manager para implementar Datadog Operator desde OperatorHub en tu consola web de clúster de OpenShift. Consulta los [pasos de instalación de Operator][1]. La configuración siguiente funciona con esa instalación, que crea el [acceso a SCC basado en ClusterRole y ClusterRoleBinding][2] para el `datadog-agent-scc` de ServiceAccount especificado. Esta configuración del `DatadogAgent` debe desplegarse en el mismo espacio de nombres que el Datadog Operator. +Al usar el Datadog Operator en OpenShift, Datadog recomienda que utilice el Administrador del ciclo de vida del operador para implementar el Datadog Operator desde OperatorHub en la consola web de su clúster de OpenShift. Consulte los [pasos de instalación del operador][1]. La configuración a continuación funciona con esa configuración, la cual crea el [acceso a SCC basado en ClusterRole y ClusterRoleBinding][2] para la ServiceAccount `datadog-agent-scc` especificada. Esta configuración `DatadogAgent` debe implementarse en el mismo espacio de nombres que el Datadog Operator. ```yaml kind: DatadogAgent @@ -458,16 +549,16 @@ spec: effect: NoSchedule ``` -**Nota**: La anulación de `nodeAgent.securityContext.seLinuxOptions` es necesaria para la recopilación de logs cuando se despliega con el Operator. Si la recopilación de logs no está activada, puedes omitir esta anulación. +**Nota**: La anulación `nodeAgent.securityContext.seLinuxOptions` es necesaria para la recopilación de registros al implementar con el Operador. Si la recopilación de registros no está habilitada, puede omitir esta anulación. [1]: https://github.com/DataDog/datadog-operator/blob/main/docs/install-openshift.md [2]: https://docs.openshift.com/container-platform/4.10/authentication/managing-security-context-constraints.html#role-based-access-to-ssc_configuring-internal-oauth {{% /tab %}} {{% tab "Helm" %}} -La siguiente configuración crea SCC personalizados para las cuentas de servicio del Agent y del Cluster Agent. +La configuración a continuación crea SCC personalizados para las cuentas de servicio del Agent y del Agent de Clúster. -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -503,14 +594,14 @@ clusterAgent: ## Rancher {#Rancher} -Las instalaciones de Rancher son similares a las instalaciones Kubernetes estándar, por lo que solo requieren una configuración menor: -- Las tolerancias son necesarias para programar el Node Agent en los nodos `controlplane` y `etcd`. -- Se debe definir el nombre del clúster, ya que no se puede recuperar automáticamente del proveedor de la nube. +Las instalaciones de Rancher son similares a las instalaciones de Kubernetes estándar, y solo requieren una configuración menor: +- Se requieren tolerancias para programar el Node Agent en los nodos `controlplane` y `etcd`. +- El nombre del clúster debe configurarse, ya que no se puede recuperar automáticamente del proveedor de la nube. {{< tabs >}} {{% tab "Datadog Operator" %}} -Recurso Kubernetes del Datadog Agent: +Recurso de Kubernetes DatadogAgent: ```yaml kind: DatadogAgent @@ -548,10 +639,10 @@ spec: override: clusterAgent: image: - name: gcr.io/datadoghq/cluster-agent:latest + name: registry.datadoghq.com/cluster-agent:latest nodeAgent: image: - name: gcr.io/datadoghq/agent:latest + name: registry.datadoghq.com/agent:latest tolerations: - key: node-role.kubernetes.io/controlplane operator: Exists @@ -564,7 +655,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: @@ -589,17 +680,91 @@ agents: ## Oracle Container Engine para Kubernetes (OKE) {#OKE} -No es necesaria ninguna configuración específica. +No se requiere ninguna configuración específica. + +## vSphere Kubernetes Service (VKS) {#VKS} + +VKS requiere que el espacio de nombres donde se implementa Datadog Agent utilice el Estándar de Seguridad de Pods privilegiado. Antes de implementar Datadog Agent, reemplace `` con el espacio de nombres donde implementa `datadog-agent` y ejecute: + +```shell +kubectl label --overwrite ns \ + pod-security.kubernetes.io/enforce=privileged +``` + +Utilice la siguiente configuración para habilitar la recopilación de eventos de Kubernetes y kube-state-metrics core, deshabilitar la verificación TLS de Kubelet para certificados autofirmados y agregar una tolerancia para que el Agent pueda programarse en los nodos del plano de control. + +{{< tabs >}} +{{% tab "Datadog Operator" %}} + +Recurso de Kubernetes DatadogAgent: + +```yaml +kind: DatadogAgent +apiVersion: datadoghq.com/v2alpha1 +metadata: + name: datadog +spec: + features: + eventCollection: + collectKubernetesEvents: true + kubeStateMetricsCore: + enabled: true + global: + clusterName: + credentials: + apiSecret: + secretName: datadog-secret + keyName: api-key + appSecret: + secretName: datadog-secret + keyName: app-key + kubelet: + tlsVerify: false + override: + nodeAgent: + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule +``` + +{{% /tab %}} +{{% tab "Helm" %}} + +Personalizado `datadog-values.yaml`: + +```yaml +datadog: + clusterName: + apiKey: + appKey: + kubelet: + # Set tlsVerify to false since the Kubelet certificates are self-signed + tlsVerify: false + # Disable the `kube-state-metrics` dependency chart installation. + kubeStateMetricsEnabled: false + # Enable the new `kubernetes_state_core` check. + kubeStateMetricsCore: + enabled: true +# Add a toleration so that the agent can be scheduled on the control plane nodes. +agents: + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule +``` + +{{% /tab %}} + +{{< /tabs >}} ## vSphere Tanzu Kubernetes Grid (TKG) {#TKG} -TKG requiere algunos pequeños cambios en su configuración que se muestran a continuación. Por ejemplo, se requiere establecer una tolerancia para que el controlador programe el Node Agent en los nodos `master`. +TKG requiere algunos cambios de configuración menores, que se muestran a continuación. Por ejemplo, es necesario establecer una tolerancia para que el controlador programe el Node Agent en los nodos `master`. {{< tabs >}} {{% tab "Datadog Operator" %}} -Recurso Kubernetes del Datadog Agent: +Recurso de Kubernetes DatadogAgent: ```yaml kind: DatadogAgent @@ -633,7 +798,7 @@ spec: {{% /tab %}} {{% tab "Helm" %}} -`datadog-values.yaml` personalizado: +Personalizado `datadog-values.yaml`: ```yaml datadog: diff --git a/hugo/content/es/dashboards/graph_insights/_index.md b/hugo/content/es/dashboards/graph_insights/_index.md index 08a5bb9c01d..efd0a474ac9 100644 --- a/hugo/content/es/dashboards/graph_insights/_index.md +++ b/hugo/content/es/dashboards/graph_insights/_index.md @@ -1,37 +1,52 @@ --- +description: Descubra las posibles causas raíz utilizando Metric Correlations, Watchdog + Explains y la detección de anomalía en los tableros para analizar el comportamiento + irregular de las métricas. disable_toc: false further_reading: - link: /watchdog/insights/ tag: Documentación - text: Obtener más información sobre Watchdog Insights -title: Información de gráficos + text: Obtenga más información sobre Watchdog Insights +- link: https://www.datadoghq.com/blog/ai-powered-metrics-monitoring/ + tag: Blog + text: 'Detección de anomalías, correlaciones predictivas: uso de monitoreo de métricas + asistido por IA' +title: Graph Insights --- +## Descripción general {#overview} -## Información general +Graph Insights puede ayudarle a encontrar posibles causas raíz de un problema observado mediante la búsqueda de otras métricas que mostraron un comportamiento irregular aproximadamente al mismo tiempo. Metric Correlations analiza sus métricas de diferentes fuentes, como tableros, integraciones, APM y métricas personalizadas. -La información de gráficos puede ayudarte a encontrar posibles causas raíz de un problema observado mediante la búsqueda de otras métricas que exhibieron un comportamiento irregular en el mismo momento. Las correlaciones de métricas analizan tus métricas desde diferentes fuentes, como dashboards, integraciones, APM y métricas personalizadas. +## Metric Correlations {#metric-correlations} -## Correlaciones de métricas +
Metric Correlations está disponible para widgets de series temporales con la fuente de datos Metric.
-
Las correlaciones de métricas se encuentran disponible para los widgets de serie temporal con la fuente de datos de la métrica.
+Para dirigir la búsqueda de manera más efectiva, Metric Correlations utiliza información sobre tableros y servicios relacionados. Las correlaciones pueden examinar métricas de diversas fuentes, incluyendo APM, integraciones y tableros, así como espacios de nombres de métricas arbitrarios que usted seleccione. Busca irregularidades en otras métricas durante el período de tiempo correspondiente, lo que permite a Datadog proporcionar automáticamente pistas que facilitan un análisis de causa raíz más eficiente. -Para orientar la búsqueda de manera más eficaz, las correlaciones de métricas utilizan información sobre los dashboards y servicios relacionados. Las correlaciones pueden filtrar métricas desde varias fuentes, como APM, integraciones y dashboards, así como espacios de nombres de métricas arbitrarios que selecciones. Buscan irregularidades en otras métricas durante el período de tiempo correspondiente, lo que permite que Datadog proporcione automáticamente pistas que faciliten un análisis de causa raíz más eficiente. +Para obtener más información, consulte la documentación de [Metric Correlations][1]. -Para más información, consulta la documentación [Correlaciones de métricas][1]. +## Watchdog Explains {#watchdog-explains} -## Watchdog Explains +
Watchdog Explains está disponible para widgets de series temporales con la fuente de datos Metric.
-
Watchdog Explains está disponible para los widgets de Timeseries con la fuente de datos de métricas.
- -Datadog recopila distintos tipos de datos para brindar información sobre el rendimiento de las aplicaciones, incluidas métricas, trazas (traces) y logs que te indican qué sucede, cómo y por qué. Watchdog Explains analiza tendencias de alto nivel, como latencia, tasas de error o evolución del recuento de solicitudes, para detectar señales críticas. Al observar un pico en estos gráficos, Watchdog Explains ayuda a investigar las preguntas inmediatas: -- ¿Cuál es el origen del pico? +Datadog recopila varios tipos de datos para proporcionar información sobre el rendimiento de las aplicaciones, incluyendo métricas, trazas y registros, los cuales le indican qué, cómo y por qué está sucediendo algo. Watchdog Explains analiza tendencias de alto nivel como la latencia, las tasas de error o la evolución del recuento de solicitudes para detectar señales críticas. Al observar un pico en estos gráficos, Watchdog Explains le ayuda a investigar las preguntas inmediatas: +- ¿Cuál es la fuente del pico? - ¿Esta anomalía afecta a todos o es un incidente aislado? -Para obtener más información, consulta la documentación de [Watchdog Explains][2]. +Para obtener más información, consulte la documentación de [Watchdog Explains][2]. + +## Detección de anomalías en los tableros {#dashboard-anomaly-detection} + +
La detección de anomalías está disponible para widgets de series temporales con la fuente de datos Metric data source.
+ +Datadog detecta anomalías en los gráficos de sus tableros y agrupa aquellas que ocurren juntas en incidentes. Para cada incidente, Datadog identifica las etiquetas que más contribuyen a la anomalía. Puede analizar un solo gráfico con Watchdog Explains o delegar el análisis de causa raíz a Bits Investigation. + +Para obtener más información, consulte [Investigar anomalías en los tableros][3]. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/dashboards/graph_insights/correlations/ -[2]: /es/dashboards/graph_insights/watchdog_explains/ \ No newline at end of file +[2]: /es/dashboards/graph_insights/watchdog_explains/ +[3]: /es/dashboards/graph_insights/investigate_anomalies/ \ No newline at end of file diff --git a/hugo/content/es/data_security/agent.md b/hugo/content/es/data_security/agent.md index 8167015c987..571efe4717d 100644 --- a/hugo/content/es/data_security/agent.md +++ b/hugo/content/es/data_security/agent.md @@ -5,17 +5,16 @@ description: Medidas de seguridad del Datadog Agent further_reading: - link: /data_security/ tag: Documentación - text: Revisar las principales categorías de datos enviados a Datadog -title: Seguridad de los datos en el Agent + text: Revise las categorías principales de datos enviados a Datadog +title: Seguridad de los datos del Agent --- +
Esta página trata sobre la seguridad de los datos enviados a Datadog. Si busca productos y funciones de seguridad de la nube y de aplicaciones, consulte la sección Security.
-
En esta página hablamos sobre la seguridad de los datos que se envían a Datadog. Si estás buscando productos y funciones para proteger las aplicaciones y las soluciones en la nube, consulta la sección Seguridad.
+Puede enviar datos al servicio de Datadog mediante un [Agent][1] instalado localmente o a través de nuestra [HTTP API][2]. Aunque el uso de Datadog no requiere estrictamente el uso del Datadog Agent, la gran mayoría de los clientes aprovechan el Agent. Este artículo describe las principales capacidades y funciones de seguridad disponibles para garantizar que su entorno sea seguro. -Es posible enviar datos al servicio Datadog utilizando un [Agent][1] instalado localmente o a través de nuestra [API HTTP][2]. Aunque para utilizar Datadog no es estrictamente necesario utilizar el Datadog Agent, la gran mayoría de los clientes aprovechan esta posibilidad. Este artículo describe las principales funciones y características de seguridad disponibles para garantizar la seguridad de tu entorno. +## Distribución del Agent {#agent-distribution} -## Distribución del Agent - -Los repositorios oficiales y los paquetes binarios del Agent están firmados. Para verificar el canal de distribución, comprueba la firma con una de las siguientes claves públicas: +Los repositorios oficiales y los paquetes binarios del Agent están firmados. Verifique el canal de distribución comprobando la firma con una de las siguientes claves públicas: - Paquetes DEB de Linux y metadatos del repositorio: - [D18886567EABAD8B2D2526900D826EB906462314][18] @@ -27,74 +26,75 @@ Los repositorios oficiales y los paquetes binarios del Agent están firmados. Pa - [7408BFD56BC5BF0C361AAAE85D88EEA3B01082D3][16] - [C6559B690CA882F023BDF3F63F4D1729FD4BF915][5] - [A4C0B90D7443CF6E4E8AA341F1068E14E09422B3][6] -- MacOS PKG: +- PKG de MacOS: - Huella digital del certificado de Apple `FDD2ADF623EA75E62C6DC6DBFBA7520CA549AB7314E660D78B0E3DCCF15B2FBA` -En Debian y Ubuntu, el paquete `datadog-agent` tiene una dependencia relativa del paquete de `datadog-signing-keys`, lo que hace que las claves anteriores sean de confianza para APT. Al mantener el paquete actualizado, te aseguras de que las últimas claves de firma están presentes en tu sistema. +En Debian y Ubuntu, el paquete `datadog-agent` tiene una dependencia opcional del paquete `datadog-signing-keys`, lo que hace que las claves anteriores sean confiables para APT. Mantener el paquete actualizado garantiza que las claves de firma más recientes estén presentes en su sistema. -### Windows MSI +### MSI de Windows {#windows-msi} -Para verificar la firma de un archivo de instalación del Datadog Agent en Windows, canaliza la salida de `Get-AuthenticodeSignature` a través de `FormatList` (`fl`) y asegúrate de que: -- el estado es válido -- el certificado está firmado por `Datadog, Inc` -- el emisor es `DigiCert` +Para verificar la firma de un archivo instalador del Datadog Agent en Windows, dirija la salida de `Get-AuthenticodeSignature` a través de `FormatList` (`fl`) y asegúrese de que: +- el estado sea válido +- el certificado esté firmado por `Datadog, Inc` +- el emisor sea `DigiCert` -Por ejemplo, para verificar un archivo .msi denominado `ddagent-cli-7.49.1.msi`: +Por ejemplo, para verificar un archivo .msi llamado `ddagent-cli-7.49.1.msi`: {{< code-block lang="powershell" >}} Get-AuthenticodeSignature ddagent-cli-7.49.1.msi | fl {{< /code-block >}} -Si la salida del comando es `A certificate chain could not be built to a trusted root authority`, la máquina puede necesitar una actualización de la CA raíz de DigiCert. +Si la salida del comando es `A certificate chain could not be built to a trusted root authority`, es posible que la máquina necesite una actualización de la CA raíz de DigiCert. -## Seguridad de la información +## Seguridad de la información {#information-security} -El Datadog Agent envía datos a Datadog a través de una conexión TCP cifrada TLS por defecto. A partir de la versión 6, el Agent puede configurarse para imponer una versión mínima de TLS al conectarse a Datadog. Si necesitas utilizar una criptografía sólida (p. ej., para cumplir con los requisitos PCI), debes utilizar el Agent v6 o v7 y establecer el parámetro `min_tls_version: 'tlsv1.2'` o `force_tls_12: true` para el Agent v6.39.0/v7.39.0 o versiones anteriores, en el archivo de configuración del Agent. +El Datadog Agent envía datos a Datadog a través de una conexión TCP cifrada con TLS de forma predeterminada. A partir de la versión 6, el Agent puede configurarse para aplicar una versión mínima de TLS al conectarse a Datadog. Si requiere el uso de criptografía fuerte, por ejemplo, para cumplir con los requisitos de PCI, debe usar el Agent v6/7 y establecer la configuración `min_tls_version: 'tlsv1.2'`, o `force_tls_12: true` para el Agent < 6.39.0/7.39.0, en el archivo de configuración del Agent. -## Redes y proxy +## Redes y proxy {#networking-and-proxying} -Datadog es un producto SaaS: para enviar datos de monitorización es necesario establecer una conexión saliente desde tu red a la Internet pública. El Agent siempre inicia el tráfico a Datadog desde una conexión TCP cifrada TLS por defecto. Nunca se inician sesiones desde Datadog hacia el Agent. Para obtener más información sobre la configuración de cortafuegos para permitir la lista de dominios y puertos de Datadog necesarios, consulta la página [Red][7] del Agent. Además, si quieres monitorizar hosts sin una conexión directa a la Internet pública o con tráfico saliente restringido considera la posibilidad de enviar datos de monitorización desde un [proxy][8]. +Datadog es un producto SaaS: necesita establecer una conexión saliente desde su red a la internet pública para enviar datos de monitoreo. El tráfico siempre es iniciado por el Agent hacia Datadog desde una conexión TCP cifrada con TLS de forma predeterminada. Nunca se inician sesiones desde Datadog hacia el Agent. Consulte la página [Network][7] del Agent para obtener más información sobre cómo configurar firewalls para incluir en la lista de permitidos los dominios y puertos de Datadog requeridos. Además, si desea hacer un seguimiento de hosts sin conectividad directa a la internet pública, o con tráfico saliente restringido, considere enviar datos de seguimiento desde un [proxy][8]. -## Enmascarar logs del Agent +## Ofuscación de registros del Agent {#agent-logs-obfuscation} -El Datadog Agent genera logs locales para facilitar la [resolución de problemas del Agent][9], si es necesario. Como medida de seguridad, estos logs locales se filtran en busca de algunas palabras clave y patrones específicos que podrían indicar una posible credencial (por ejemplo, clave de API, contraseña y palabras clave de token), que luego se enmascaran antes de escribirse en el disco. +El Datadog Agent genera registros locales para respaldar la [solución de problemas del Agent][9] según sea necesario. Como medida de precaución de seguridad, estos registros locales se filtran para detectar palabras clave y patrones específicos que podrían indicar la presencia de una credencial potencial (por ejemplo, clave de API, contraseña y token), las cuales luego se ofuscan antes de escribirse en el disco. -## Servidor HTTPS local +## Servidor HTTPS local {#local-https-server} -El Agent v6 y v7 exponen una API HTTPS local para facilitar la comunicación entre un Agent en ejecución y las herramientas del Agent (por ejemplo, los comandos `datadog-agent`). Sólo se puede acceder al servidor de API desde la interfaz de red local (`localhost/127.0.0.1`) y la autenticación se realiza mediante un token que sólo puede leer el usuario con el que se ejecuta el Agent. La comunicación con la API HTTPS local está cifrada durante el transporte para protegerla de posibles interceptaciones en `localhost`. +El Agent v6/7 expone una API HTTPS local para facilitar la comunicación entre un Agent en ejecución y las herramientas del Agent (por ejemplo, los comandos `datadog-agent`). El servidor de la API solo puede ser accedido desde la interfaz de red local (`localhost/127.0.0.1`), y la autenticación se aplica a través de un token que solo puede ser leído por el usuario con el que se ejecuta el Agent. La comunicación con la API HTTPS local está cifrada en el transporte para proteger contra la interceptación en `localhost`. -## GUI del Agent +## GUI del Agent {#agent-gui} -El Agent v6 y v7 viene con una interfaz gráfica de usuario (GUI) por defecto que se inicia en tu navegador web predeterminado. La GUI sólo se inicia si el usuario que la ejecuta tiene los permisos de usuario adecuados, incluyendo la capacidad de abrir el archivo de configuración del Agent. Sólo se puede acceder a la GUI desde la interfaz de red local (`localhost/127.0.0.1`). Además, las cookies del usuario deben estar habilitadas, ya que la GUI genera y guarda un token que se utiliza para autenticar todas las comunicaciones con el servidor de la GUI, así como para proteger contra ataques de falsificación de petición en sitios cruzados (CSRF). Si es necesario, también es posible desactivar por completo la GUI. +El Agent v6/7 viene incluido con una Interfaz Gráfica de Usuario (GUI) de forma predeterminada, la cual se inicia en su navegador web predeterminado. La GUI se inicia solo si el usuario que la inicia tiene los permisos de usuario correctos, incluida la capacidad de abrir el archivo de configuración del Agent. La GUI solo puede ser accedida desde la interfaz de red local (`localhost/127.0.0.1`). Finalmente, las cookies del usuario deben estar habilitadas, ya que la GUI genera y guarda un token utilizado para autenticar todas las comunicaciones con el servidor de la GUI, además de proteger contra ataques de Falsificación de Petición en Sitios Cruzados (CSRF). La GUI también puede desactivarse por completo si es necesario. -## Análisis de seguridad del Agent +## Escaneos de seguridad del Agent {#agent-security-scans} -El programa de gestión de vulnerabilidades de Datadog incluye evaluaciones periódicas de los componentes de soporte de infraestructura y de aplicaciones, incluyendo análisis activos de los servicios de soporte centrales. Los equipos de seguridad de Datadog realizan análisis periódicos para identificar vulnerabilidades de configuración y del software, y realizan un seguimiento de la corrección de los hallazgos de acuerdo con la política de gestión de vulnerabilidades de Datadog. +El programa de Vulnerability Management de Datadog incluye evaluaciones periódicas de la infraestructura de soporte y los componentes de la aplicación, incluidos escaneos activos de los servicios de soporte principales. Los equipos de Datadog Security realizan escaneos periódicos para identificar vulnerabilidades de configuración y software, y realizan un seguimiento de la corrección de los hallazgos de acuerdo con la política de Vulnerability Management de Datadog. -En lo que respecta específicamente a su Container Agent, Datadog realiza análisis estáticos periódicos de vulnerabilidades, tanto en sus versiones de disponibilidad general (GA) como en las versiones candidatas (RC). El Datadog Container Agent puede encontrarse en registros públicos, como se menciona en [Docker Agent][10], y además, el código fuente del Agent es de código abierto. Esto permite a los clientes realizar análisis de vulnerabilidades con sus herramientas preferidas a un ritmo que satisfaga sus necesidades únicas. Esto proporciona la visibilidad que requieren los clientes que acostumbran monitorizar el Agent en busca de vulnerabilidades potenciales. +Con respecto a su Container Agent específicamente, Datadog realiza análisis estáticos de vulnerabilidad periódicos tanto en sus versiones de disponibilidad general (GA) como en las versiones candidatas (RC). El Datadog Container Agent se puede encontrar en registros públicos como se menciona en [Docker Agent][10], y además, el código fuente del Datadog Agent es de código abierto. Esto permite a los clientes realizar escaneos de vulnerabilidades con sus herramientas preferidas según una cadencia que satisfaga sus necesidades únicas. Esto proporciona la visibilidad necesaria para los clientes inclinados a hacer un seguimiento del Datadog Agent en busca de posibles vulnerabilidades. -Si crees que detectaste un error en la seguridad de Datadog, consulta [Informar de un problema][11]. Para enviar una consulta acerca de la vulnerabilidad de un producto específico como cliente existente, ponte en contacto con el [servicio de asistencia de Datadog][12] a través de tu proceso de asistencia estándar. Si envías un ticket de asistencia a través del sitio web de Datadog, configura el campo `Product type` como `Vulnerability Inquiry on Datadog Product`. +Si cree que ha descubierto un error en la seguridad de Datadog, consulte [Reportar un problema][11]. +Para verificar el estado de una CVE específica, consulte la [página de vulnerabilidades de artefactos públicos][19]. Para obtener información adicional, comuníquese con el [Soporte de Datadog][12] a través de su proceso de soporte estándar. Al enviar un ticket de soporte a través del sitio web de Datadog, establezca el campo {{< ui >}}Product type{{< /ui >}} en {{< ui >}}Vulnerability Inquiry on Datadog Product{{< /ui >}}. -## Ejecución como usuario sin privilegios +## Ejecución como usuario sin privilegios {#running-as-an-unprivileged-user} -Por defecto, el Agent se ejecuta como el usuario `dd-agent` en Linux y como la cuenta `ddagentuser` en [Windows][13]. Las excepciones son las siguientes: +De forma predeterminada, el Agent se ejecuta como el usuario `dd-agent` en Linux y como la cuenta `ddagentuser` en [Windows][13]. Las excepciones son las siguientes: - El `system-probe` se ejecuta como `root` en Linux y como `LOCAL_SYSTEM` en Windows. - El `process-agent` se ejecuta como `LOCAL_SYSTEM` en Windows. - El `security-agent` se ejecuta como `root` en Linux. -## Gestión de secretos +## Gestión de secretos {#secrets-management} -Si quieres evitar el almacenamiento de secretos en texto plano en los archivos de configuración del Agent, puedes aprovechar el paquete de [gestión de secretos][14]. Este paquete permite al Agent llamar a un ejecutable proporcionado por el usuario para gestionar la recuperación o descifrado de secretos, que luego son cargados en la memoria por el Agent. Puedes diseñar tu ejecutable de acuerdo con tu servicio de gestión de claves, tu método de autenticación y tu flujo de trabajo de integración continua preferidos. +Si tiene el requisito de evitar el almacenamiento de secretos en texto plano en los archivos de configuración del Agent, puede aprovechar el paquete de [gestión de secretos][14]. Este paquete permite que el Agent llame a un ejecutable proporcionado por el usuario para manejar la recuperación o el descifrado de secretos, los cuales son cargados posteriormente en la memoria por el Agent. Puede diseñar su ejecutable de acuerdo con su servicio de gestión de claves, método de autenticación y flujo de trabajo de integración continua preferidos. -Para obtener más información, consulta la documentación [Gestión de secretos][14]. +Para obtener más información, consulte la documentación de [Gestión de secretos][14]. -## Recopilación de telemetría +## Recopilación de telemetría {#telemetry-collection} -{{< site-region region="gov" >}} +{{< site-region region="gov,gov2" >}} -El Agent en sitios no gubernamentales recopila información del entorno, de rendimiento y de uso de funciones sobre el Datadog Agent. Cuando el Agent detecta un sitio gubernamental, o se utiliza el [proxy FIPS del Datadog Agent][1], el Agent desactiva automáticamente esta recopilación de telemetría. Cuando dicha detección es imposible (por ejemplo, si se está utilizando un proxy), se emite telemetría del Agent, pero se abandona inmediatamente en la entrada de Datadog. +El Agent en sitios que no son gubernamentales recopila información sobre el entorno, el rendimiento y el uso de funciones del Datadog Agent. Cuando el Agent detecta un sitio gubernamental, o se utiliza el [Datadog Agent FIPS Proxy][1], el Agent deshabilita automáticamente esta recopilación de telemetría. Cuando dicha detección es imposible (por ejemplo, si se está utilizando un proxy), la telemetría del Agent se emite, pero se descarta inmediatamente en la ingesta de Datadog. -Para evitar que se emitan estos datos en primer lugar, Datadog recomienda desactivar explícitamente la telemetría del Agent actualizando la configuración de `agent_telemetry` en el archivo de configuración del Agent, como se muestra en el siguiente ejemplo. +Para evitar que estos datos se emitan en primer lugar, Datadog recomienda deshabilitar la telemetría del Datadog Agent explícitamente actualizando el ajuste `agent_telemetry` en el archivo de configuración del Datadog Agent, como se muestra en el ejemplo a continuación. {{< tabs >}} {{% tab "datadog.yaml" %}} @@ -113,10 +113,10 @@ DD_AGENT_TELEMETRY_ENABLED=false {{< /tabs >}} [1]: https://docs.datadoghq.com/es/agent/configuration/fips-compliance?tab=hostorvm&site=gov {{< /site-region >}} -{{< site-region region="us,us3,us5,eu,ap1,ap2" >}} -Datadog puede recopilar información del entorno, del rendimiento y del uso de funciones del Datadog Agent. Esta puede incluir logs de diagnóstico y volcados de memoria del Datadog Agent con trazas (traces) de stack tecnológico ofuscadas para respaldar y seguir mejorando el Datadog Agent. +{{< site-region region="us,us3,us5,eu,ap1,ap2,uk1" >}} +Datadog puede recopilar información sobre el entorno, el rendimiento y el uso de funciones del Datadog Agent. Esto puede incluir registros de diagnóstico y volcados de memoria del Datadog Agent con seguimientos de pila ofuscados para brindar soporte y mejorar aún más el Datadog Agent. -Puedes desactivar la recopilación de telemetría actualizando el parámetro `agent_telemetry` en el archivo de configuración del Agent, como se muestra en el siguiente ejemplo. +Puede deshabilitar esta recopilación de telemetría actualizando el ajuste `agent_telemetry` en el archivo de configuración del Datadog Agent, como se muestra en el ejemplo a continuación. {{< tabs >}} {{% tab "datadog.yaml" %}} @@ -135,74 +135,134 @@ DD_AGENT_TELEMETRY_ENABLED=false **Contenido de telemetría:** -Para ver el contenido de telemetría más reciente, ejecuta el siguiente comando: +Para visualizar el contenido de telemetría más reciente, ejecute el siguiente comando: + ```bash agent diagnose show-metadata agent-telemetry ``` -| Metadatos ([fuente][1]) | +| Metadatos ([source][1]) | | ---------------------- | -| Identificador de la máquina | +| ID de la máquina | | Nombre de la máquina | -| Sistema operativo | -| Versión del sistema operativo | +| OS | +| OS version | | Agent version | -| Métricas ([fuente][2]) | Descripción | +| Métricas ([source][2]) | Descripción | | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| **Checks** | | -| checks.execution_time | Tiempo de ejecución del check en milisegundos | -| pymem.inuse | Número de bytes asignados por el intérprete de Python | -| **Logs y métricas** | | -| dogstatsd.udp_packets_bytes | Bytes de paquetes UDP DogStatsD | -| dogstatsd.uds_packets_bytes | Bytes de paquetes UDS DogStatsD | -| logs.auto_multi_line_aggregator_flush | Número de logs multilínea agregados por el Agent | -| logs.bytes_missed | Número total de bytes perdidos antes de que pudieran ser consumidos por el Agent, por ejemplo, tras la rotación de logs | +| **Comprobaciones** | | +| checks.execution_time | Tiempo de ejecución de la verificación en milisegundos | +| pymem.inuse | Número de bytes asignados por el intérprete de Python | +| **Registros y métricas** | | +| dogstatsd.udp_packets_bytes | Bytes de paquetes UDP de DogStatsD | +| dogstatsd.uds_packets_bytes | Bytes de paquetes UDS de DogStatsD | +| dogstatsd_client.bytes_sent | Total de bytes enviados por clientes de DogStatsD | +| dogstatsd_client.bytes_dropped | Total de bytes descartados por clientes de DogStatsD | +| dogstatsd_client.bytes_dropped_queue | Total de bytes descartados porque la cola del remitente del cliente de DogStatsD está llena | +| dogstatsd_client.bytes_dropped_writer | Total de bytes descartados porque el escritor del cliente de DogStatsD no puede enviarlos | +| logs.auto_multi_line_aggregator_flush | Número de registros multilínea agregados por el Agent | +| logs.auto_multi_line_default_total_lines | Total de líneas de registro procesadas por el agregador de detección para fuentes que dependen de la detección multilínea automática predeterminada | +| logs.auto_multi_line_default_would_combine | Número de líneas que se combinarían si la detección multilínea automática estuviera habilitada de forma predeterminada | +| logs.auto_multi_line_default_would_truncate | Número de líneas en grupos que se truncarían si la detección multilínea automática estuviera habilitada de forma predeterminada | +| logs.bytes_missed | Número total de bytes perdidos antes de que pudieran ser consumidos por el Agent, por ejemplo, después de la rotación de registros | | logs.bytes_sent | Número total de bytes enviados antes de la codificación, si corresponde | -| logs.decoded | Número total de logs decodificados | -| logs.dropped | Número total de logs abandonados | -| logs.encoded_bytes_sent | Número total de bytes enviados tras la codificación, si corresponde | +| logs.decoded | Número total de registros decodificados | +| logs.dropped | Número total de registros descartados | +| logs.encoded_bytes_sent | Número total de bytes enviados después de la codificación, si corresponde | +| logs.http_connectivity_check | Número de checks de conectividad HTTP, etiquetados por estado (éxito o error) | +| logs.http_connectivity_failure | Número de fallas en verificaciones de conectividad HTTP, etiquetadas por causa raíz (dns, tls, timeout, connection, http_status, other) | +| logs.http_connectivity_retry_attempt | Número de reintentos en checks de conectividad HTTP, etiquetados por estado (éxito o error) | +| logs.restart_attempt | Número de intentos de reinicio del Agent de registros, etiquetados por estado y transporte de destino | | logs.sender_latency | Latencia del remitente HTTP en milisegundos | -| logs.truncated | Número total de logs truncados por el Agent | -| point.dropped | Número total de métricas abandonadas | +| logs.truncated | Número total de registros truncados por el Agent | +| logs_destination.destination_workers | Número máximo de conexiones HTTP activas por destino de registro | +| point.dropped | Número total de métricas descartadas | | point.sent | Número total de métricas enviadas | -| transactions.input_count | Recuento de transacciones entrantes | -| transactions.requeued | Recuento de nuevas colocaciones en colas de transacciones | -| transactions.retries | Recuento de reintentos de transacciones | +| transactions.input_count | Número de transacciones entrantes | +| transactions.input_bytes | Tamaño de la carga útil de la transacción entrante en bytes | +| transactions.success | Número de transacciones exitosas | +| transactions.success_bytes | Tamaño de la carga útil de la transacción exitosa en bytes | +| transactions.requeued | Número de reencolamientos de transacciones | +| transactions.retries | Número de reintentos de transacciones | | **Base de datos** | | -| oracle.activity_samples_count | Número de filas obtenidas en la medición de la actividad de consulta (Número de muestras de actividad recopiladas) | -| oracle.activity_latency | Tiempo para recuperar la actividad de consulta en milisegundos | -| oracle.statement_metrics | Tiempo para recuperar métricas de bases de datos en milisegundos | -| oracle.statement_plan_errors | Número de errores en la recuperación de planes de ejecución | -| postgres.collect_activity_snapshot_ms | Tiempo para obtener snapshots de actividad en milisegundos | -| postgres.collect_relations_autodiscovery_ms | Tiempo para recuperar relaciones de Autodiscovery en milisegundos | +| oracle.activity_samples_count | Número de filas obtenidas al medir la actividad de consultas (Número de muestras de actividad recopiladas) | +| oracle.activity_latency | Tiempo para recuperar la actividad de consultas en milisegundos | +| oracle.statement_metrics | Tiempo para recuperar las métricas de la base de datos en milisegundos | +| oracle.statement_plan_errors | Número de errores al recuperar los planes de ejecución | +| postgres.collect_activity_snapshot_ms | Tiempo para obtener la instantánea de actividad en milisegundos | +| postgres.collect_relations_autodiscovery_ms | Tiempo para recopilar relaciones de Autodiscovery en milisegundos | | postgres.collect_statement_samples_ms | Tiempo para obtener muestras de sentencias en milisegundos | | postgres.collect_statement_samples_count | Total de filas obtenidas para recopilar muestras de sentencias | | postgres.collect_stat_autodiscovery_ms | Tiempo para recopilar estadísticas de Autodiscovery en milisegundos | | postgres.get_new_pg_stat_activity_ms | Tiempo para obtener `pg_stat_activity` en milisegundos | -| postgres.get_new_pg_stat_activity_count | Total de filas obtenidas para la recopilación `pg_stat_activity` | +| postgres.get_new_pg_stat_activity_count | Total de filas obtenidas para recopilar `pg_stat_activity` | | postgres.get_active_connections_ms | Tiempo para obtener conexiones activas en milisegundos | -| postgres.get_active_connections_count | Total de filas obtenidas para ver las conexiones activas | -| postgres.schema_tables_elapsed_ms | Hora de recopilar tablas en el esquema Postgres | -| postgres.schema_tables_count | Total de tablas en el esquema Postgres | +| postgres.get_active_connections_count | Total de filas obtenidas para conseguir conexiones activas | +| postgres.schema_tables_elapsed_ms | Tiempo para recopilar tablas en el esquema de Postgres | +| postgres.schema_tables_count | Total de tablas en el esquema de Postgres | | **API** | | -| api_server.request_duration_seconds | Rendimiento de la ejecución de comandos CLI (si se ejecutan) | +| api_server.request_duration_seconds | Rendimiento de ejecución de comandos CLI (si se ejecutan) | | **Eventos** | | -| agent_bsod | Blue Screen of Death (BSOD) relacionado con el Agent, incluido el código BugCheck, cuatro argumentos asociados y el stack tecnológico de llamadas sin simbolizar del fallo | -| **Detección de servicios** | | -| service_discovery.discovered_services | Número de servicios detectados por la función de detección de servicios del Agent | -| **Monitorización de la GPU** | | -| gpu.device_total | Número total de GPUs del sistema | - -Sólo se emiten los métricas aplicables. Por ejemplo, si DBM no está activado, no se emite ninguna métrica relacionada con una base de datos. +| agent_bsod | Datos de la pantalla azul de la muerte (BSOD) relacionados con el Agent, incluyendo el código BugCheck, cuatro argumentos asociados y la pila de llamadas de bloqueo sin simbolizar | +| **Service Discovery** | | +| service_discovery.discovered_services | Número de servicios detectados por la función de Service Discovery del Agent | +| **Autodiscovery** | | +| autodiscovery.discovery_queue_depth | Número de servicios actualmente en la cola de descubrimiento de integraciones del Agent | +| autodiscovery.discovery_results | Recuento de los intentos de descubrimiento de integraciones del Agent, etiquetados por resultado (éxito o error) | +| **GPU Monitoring** | | +| gpu.device_total | Número total de GPUs en el sistema | +| **APM** | | +| trace.enabled | Si el proceso trace-agent se está ejecutando. | +| trace.working | Si el proceso trace-agent está recibiendo y enviando trazas. | +| **Synthetic Monitoring** | | +| synthetics_agent.checks_received | Número de pruebas recibidas | +| synthetics_agent.checks_processed | Número de pruebas ejecutadas | +| synthetics_agent.error_test_config | Número de errores de configuración de prueba | +| synthetics_agent.traceroute_error | Número de errores de traceroute | +| synthetics_agent.evp_send_result_failure | Número de errores al enviar resultados | +| **Cluster Agent** | | +| admission_webhooks.mutation_attempts | Número de intentos de mutación de webhooks de admisión | +| admission_webhooks.library_injection_attempts | Número de intentos de inyección de biblioteca | +| admission_webhooks.library_injection_errors | Número de errores de inyección de biblioteca | +| admission_webhooks.patcher_errors | Número de errores del parcheador de webhooks de admisión | +| admission_webhooks.rc_provider_configs | Número de configuraciones del proveedor de configuración remota | +| admission_webhooks.rc_provider_configs_invalid | Número de configuraciones no válidas del proveedor de configuración remota | +| admission_webhooks.image_resolution_attempts | Número de intentos de resolución de imagen | +| autodiscovery.errors | Número de errores de Autodiscovery | +| autodiscovery.watched_resources | Número de recursos observados por Autodiscovery | +| cluster_checks.configs_dispatched | Número de configuraciones de verificación de clúster enviadas | +| cluster_checks.configs_dangling | Número de configuraciones de verificación de clúster huérfanas | +| cluster_checks.configs_info | Nombres de las comprobaciones de clúster enviadas | +| cluster_checks.unscheduled_check | Número de comprobaciones de clúster no programadas | +| instrumentation_controller.resources | Número de `DatadogInstrumentation` recursos rastreados por el controlador | +| instrumentation_controller.reconciliations | Número de intentos de reconciliación de la sección `DatadogInstrumentation`, etiquetados por sección y estado | +| language_detection_patcher.patches | Número de parches del parcheador de detección de idioma | +| tagger.stored_entities | Número de entidades almacenadas en el Tagger | +| workloadmeta.stored_entities | Número de entidades almacenadas en WorkloadMeta | +| workloadmeta.pull_errors | Número de errores de extracción de WorkloadMeta | +| appsec_injector.watched_changes | Número de cambios detectados por el inyector de AppSec para los recursos observados | +| appsec_injector.sidecar_mutations | Número de resultados de admisión de sidecar del inyector de AppSec (mutación y eliminación de pod) | +| agent_performance.containers_restarts | Número de reinicios de contenedor para los pods del Cluster Agent y del Cluster Checks Runner | +| agent_performance.containers_terminated | Número de terminaciones de contenedor para los pods del Cluster Agent y del Cluster Checks Runner, etiquetadas por motivo | +| agent_performance.memory_usage | Uso total de memoria del tiempo de ejecución del contenedor, en bytes, para los pods del Cluster Agent y del Cluster Checks Runner | +| agent_performance.memory_limit | Límites totales de memoria del tiempo de ejecución del contenedor, en bytes, para los pods del Cluster Agent y del Cluster Checks Runner | +| agent_performance.cpu_usage | Uso total de CPU del tiempo de ejecución del contenedor, en núcleos de CPU, para los pods del Cluster Agent y del Cluster Checks Runner | +| **eBPF** | | +| ebpf.core_load_success | Número de cargas exitosas de un programa eBPF CO-RE | +| ebpf.core_load_error | Número de errores al cargar un programa eBPF CO-RE | +| ebpf.core_remoteconfig_success | Número de descargas exitosas de datos BTF (BPF Type Format) desde la configuración remota | +| ebpf.core_remoteconfig_error | Número de errores al descargar datos BTF desde la configuración remota | + +Solo se emiten las métricas aplicables. Por ejemplo, si DBM no está habilitado, no se emite ninguna de las métricas relacionadas con la base de datos. [1]: https://github.com/DataDog/datadog-agent/blob/4dc6ed6eb069bdea7e93f2d267ac5086a98c968c/comp/core/agenttelemetry/impl/sender.go#L218-L221 -[2]: https://github.com/DataDog/datadog-agent/blob/4dc6ed6eb069bdea7e93f2d267ac5086a98c968c/comp/core/agenttelemetry/impl/config.go#L156 +[2]: https://github.com/search?q=repo%3ADataDog%2Fdatadog-agent+content%3A%2Fvar+defaultProfiles%2F+path%3Acomp%2Fcore%2Fagenttelemetry%2Fimpl%2Fconfig.go+content%3A%2Fprofiles%3A%2F+content%3A%2F-+name%3A+checks%2F+content%3A%2Fmetric%3A%2F+content%3A%2Fexclude%3A%2F&type=code {{< /site-region >}} -### Referencias adicionales +### Lecturas Adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -223,4 +283,5 @@ Sólo se emiten los métricas aplicables. Por ejemplo, si DBM no está activado, [15]: https://keys.datadoghq.com/DATADOG_APT_KEY_C0962C7D.public [16]: https://keys.datadoghq.com/DATADOG_RPM_KEY_B01082D3.public [17]: https://keys.datadoghq.com/DATADOG_RPM_KEY_4F09D16B.public -[18]: https://keys.datadoghq.com/DATADOG_APT_KEY_06462314.public \ No newline at end of file +[18]: https://keys.datadoghq.com/DATADOG_APT_KEY_06462314.public +[19]: /es/data_security/guide/public_artifact_vulnerabilities/ \ No newline at end of file diff --git a/hugo/content/es/data_security/data_retention_periods.md b/hugo/content/es/data_security/data_retention_periods.md index 517060eae8c..c7f7dde67ce 100644 --- a/hugo/content/es/data_security/data_retention_periods.md +++ b/hugo/content/es/data_security/data_retention_periods.md @@ -6,252 +6,268 @@ aliases: - /es/developers/faq/data-collection-resolution-retention/ - /es/developers/guide/data-collection-resolution-retention attributes: -- data_type: '- **Errors**: 15 days +- data_type: '- **Errores**: 15 días - - **Indexed spans**: 15 or 30 days, determined by customer plan + - **Tramos indexados**: 15 o 30 días, determinado por el plan del cliente - - **Services/resources statistics**: 30 days + - **Estadísticas de servicios/recursos**: 30 días - - **Viewed traces**: Retained for the duration of the account + - **Trazas vistas**: Se conservan durante la duración de la cuenta ' product: APM -- data_type: '- **Security signals**: 15 months +- data_type: '- **Señales de seguridad**: 15 meses - - **Spans**: 90 days + - **Tramos**: 90 días ' product: App and API Protection -- data_type: '- **Audit logs (Audit Trail enabled)**: 90 days +- data_type: '- **Registros de auditoría (Audit Trail habilitado)**: 90 días - - **Audit logs (Audit Trail disabled)**: 7 days + - **Registros de auditoría (Audit Trail deshabilitado)**: 7 días ' product: Audit Trail -- data_type: '- **Messages**: 15 months +- data_type: '- **Mensajes**: 15 meses ' - product: Bits AI Assistant -- data_type: '- **Source Code**: 7 days + product: Bits Chat +- data_type: '- **Código fuente**: 7 días ' - product: Bits AI Dev Agent -- data_type: '- **Investigations**: Retained for the duration of the account + product: Bits Code +- data_type: '- **Investigaciones**: Se conservan durante la duración de la cuenta ' - product: Bits AI SRE -- data_type: '- **Session, View, Action, and Error Events**: 30 days + product: Bits Investigation +- data_type: '- **Eventos de sesión, visualización, acción y error**: 30 días - - **Resource, Long Task, and Vitals Events**: 15 Days + - **Eventos de recursos, tareas largas y métricas vitales**: 15 días ' product: Browser RUM -- data_type: '- **Cases**: Retained for the duration of the account +- data_type: '- **Incidencias**: Se conservan durante la duración de la cuenta ' product: Case Management -- data_type: '- **Deployments**: 30 days +- data_type: '- **Implementaciones**: 30 días ' product: CD Visibility -- data_type: '- **Pipelines, stages, jobs, setups, commands**: 15 months +- data_type: '- **Canalizaciones, etapas, trabajos, configuraciones, comandos**: 15 + meses ' product: CI Pipeline Visibility -- data_type: '- **Recommendations**: 90 days +- data_type: '- **Métricas de costos**: 15 meses + + - **Recomendaciones**: 90 días ' product: Cloud Cost Management -- data_type: '- **Findings and resolved vulnerabilities**: 15 months +- data_type: '- **Hallazgos y vulnerabilidades resueltas**: 15 meses ' product: Cloud Security -- data_type: '- **Signals**: 15 months +- data_type: '- **Señales**: 15 meses - - **Detections, notifications, suppressions**: Retained for the duration of the - account + - **Detecciones, notificaciones, supresiones**: Se conservan durante la duración + de la cuenta ' product: Cloud SIEM -- data_type: '- **Events**: 90 days +- data_type: '- **Eventos**: 90 días - - **Security signals**: 15 months + - **Señales de seguridad**: 15 meses ' product: Workload Protection -- data_type: '- **Scans**: 15 months +- data_type: '- **Escaneos**: 15 meses ' product: Code Security SAST -- data_type: '- **Detected vulnerabilities**: 15 months +- data_type: '- **Vulnerabilidades detectadas**: 15 meses ' product: Code Security IAST -- data_type: '- **Container metadata**: 2 hours +- data_type: '- **Metadatos de contenedores**: 2 horas - - **Live processes and containers**: 36 hours + - **Procesos y contenedores en vivo**: 36 horas - - **YAML definitions**: 7 days + - **Definiciones YAML**: 7 días ' product: Container and Process Monitoring -- data_type: '- **Individual profiles (not opened in the UI)**: 8 days +- data_type: '- **Gráficos de llama, gráficos de llamadas y líneas de tiempo de hilos**: + 8 días + + - **Gráficos de llama exportados a Notebooks**: 1 año - - **Individual profiles (opened in the UI at least once)**: 1 year + - **Perfiles individuales abiertos en la interfaz de usuario al menos una vez**: + 1 año - - **Profile metrics**: 90 days + - **Métricas de perfil**: 30 días ' product: Continuous Profiler -- data_type: '- **Batch results**: 2 months +- data_type: '- **Resultados de lotes**: 2 meses - - **Test results**: 2 months + - **Resultados de pruebas**: 2 meses ' product: Continuous Testing -- data_type: '- **Job traces**: 90 days +- data_type: '- **Trazas de trabajo**: 90 días ' product: 'Data Observability: Jobs Monitoring' -- data_type: '- **Query samples**: 15 days +- data_type: '- **Muestras de consultas**: 15 días - - **Query metrics**: 15 months + - **Métricas de consultas**: 15 meses ' product: Database Monitoring -- data_type: '- **Dashboards, Notebooks, Monitors**: Retained for the duration of - the account +- data_type: '- **Dashboards, Notebooks, Monitors**: Se conservan durante la duración + de la cuenta ' product: Datadog App -- data_type: '- **Deployments**: 2 years +- data_type: '- **Implementaciones**: 2 años ' product: DORA Metrics -- data_type: '- **Error samples**: 30 days +- data_type: '- **Muestras de errores**: 30 días - - **Issues**: 1 year after last activity + - **Problemas**: 1 año después de la última actividad ' product: Error Tracking -- data_type: '- **Events**: 15 months +- data_type: '- **Eventos**: 15 meses ' product: Event Management -- data_type: '- **Incidents**: Retained for the duration of the account +- data_type: '- **Incidentes**: Se conservan durante la duración de la cuenta ' product: Incident Management -- data_type: '- **Production Traces and spans**: 15 (default), 30, 60, or 90 days, - determined by customer plan +- data_type: '- **Trazas y tramos de producción**: 15 (predeterminado), 30, 60 o 90 + días, determinado por el plan del cliente - - **Experiments Traces and spans**: 15 (default), 90, 180, 270, 365 days, determined - by customer plan + - **Trazas y tramos de experimentos**: 15 (predeterminado), 90, 180, 270, 365 + días, determinado por el plan del cliente - - **Datasets**: 3 years + - **Conjuntos de datos**: 3 años ' - product: LLM Observability -- data_type: '- **Logs**: Determined by customer plan + product: Agent Observability +- data_type: '- **Registros**: Determinado por el plan del cliente + + - **Registros de ejemplo de Sensitive Data Scanner**: 3 días7 días ' product: Log Management -- data_type: '- **Tags and values**: 15 months +- data_type: '- **Etiquetas y valores**: 15 meses ' product: Metrics -- data_type: '- **Test results (not displayed in UI)**: 2 months +- data_type: '- **Resultados de pruebas (no mostrados en la interfaz de usuario)**: + 2 meses - - **Test results (displayed in UI)**: 15 months + - **Resultados de pruebas (mostrados en la interfaz de usuario)**: 15 meses - - **Mobile application binaries**: Retained for the duration of the account + - **Binarios de aplicaciones móviles**: Se conservan durante la duración de la + cuenta ' product: Mobile App Testing -- data_type: '- **Session, View, Action, and Error Events**: 30 days +- data_type: '- **Eventos de sesión, visualización, acción y error**: 30 días - - **Resource, Long Task, and Vitals Events**: 15 Days + - **Eventos de recursos, tareas largas y métricas vitales**: 15 días ' product: Mobile RUM -- data_type: '- **NetFlow**: 15, 30, 60, or 90 days, determined by customer plan +- data_type: '- **NetFlow**: 15, 30, 60 o 90 días, determinado por el plan del cliente - - **SNMP traps**: Determined by customer plan, default to 15 days + - **SNMP traps**: Determinado por el plan del cliente, 15 días por defecto ' product: Network Device Monitoring -- data_type: '- **Network traffic**: 14 days +- data_type: '- **Tráfico de red**: 14 días ' product: Cloud Network Monitoring -- data_type: '- **Network Path Tests**: 30 days +- data_type: '- **Pruebas de Network Path**: 30 días ' product: Network Path -- data_type: '- **Events**: 15 months +- data_type: '- **Eventos**: 15 meses - - **User Profiles**: 15 months, or 30 days if Product - Analytics is not enabled + - **Perfiles de usuario**: 15 meses, o 30 días si Product + Analytics no está habilitado ' product: Product Analytics -- data_type: '- **Gate evaluations**: 30 days +- data_type: '- **Evaluaciones de puertas**: 30 días ' - product: PR Gates -- data_type: '- **Tables**: Retained for the duration of the account + product: Quality Gates +- data_type: '- **Tablas**: Se conservan durante la duración de la cuenta ' product: Reference Tables -- data_type: '- **Service metadata**: Retained for the duration of the account +- data_type: '- **Metadatos de servicio**: Se conservan durante la duración de la + cuenta ' product: Service Catalog -- data_type: '- **SLO results**: 15 months +- data_type: '- **Resultados de SLO**: 15 meses ' product: Service Level Objectives -- data_type: '- **Replays (extension option in UI is unchecked)**: 30 days +- data_type: '- **Reproducciones (la opción de extensión en la interfaz de usuario + no está marcada)**: 30 días - - **Replays (extension option in UI is checked)**: 15 months + - **Reproducciones (la opción de extensión en la interfaz de usuario está marcada)**: + 15 meses ' product: Session Replay -- data_type: '- **Detected vulnerabilities**: 15 months +- data_type: '- **Vulnerabilidades detectadas**: 15 meses ' product: Software Composition Analysis (SCA) -- data_type: '- **Source Code**: 7 days +- data_type: '- **Código fuente**: 7 días ' product: Source Code Integration -- data_type: '- **Test results**: 15 months +- data_type: '- **Resultados de pruebas**: 15 meses ' product: Synthetics -- data_type: '- **Tests**: 3 months +- data_type: '- **Pruebas**: 3 meses ' product: Test Visibility & Intelligent Test Runner -- data_type: '- **Workflows**: 30 days +- data_type: '- **Flujos de trabajo**: 30 días ' product: Workflow Automation content: La siguiente tabla enumera los períodos de retención de datos predeterminados - por tipo de datos y producto. Opcionalmente, busque por palabra clave o texto descriptivo - para encontrar el tipo de datos o producto que le interesa. Para obtener información - sobre el intervalo de colección y la resolución mínima, consulte [Datadog Data Collection - and Resolution](/extend/guide/data-collection-resolution). ¿Aún necesita ayuda? - Contacte a [Datadog support](/help). + por tipo de datos y producto. Opcionalmente, busque por palabra clave o texto de + descripción para encontrar el tipo de datos o producto que le interesa. Para obtener + información sobre el intervalo de recopilación y la resolución mínima, consulte + [Datadog Data Collection and Resolution](/extend/guide/data-collection-resolution). + ¿Aún necesita ayuda? Comuníquese con el [soporte de Datadog](/help). disable_sidebar: true filter_all: All further_reading: - link: /data_security/ tag: Documentación - text: Revise las principales categorías de datos enviados a Datadog + text: Revise las categorías principales de datos enviados a Datadog title: Períodos de retención de datos type: data_retention_periods --- -### Lectura adicional {#further-reading} +### Lecturas Adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} \ No newline at end of file diff --git a/hugo/content/es/database_monitoring/guide/sql_extended_events.md b/hugo/content/es/database_monitoring/guide/sql_extended_events.md new file mode 100644 index 00000000000..0c854c4249e --- /dev/null +++ b/hugo/content/es/database_monitoring/guide/sql_extended_events.md @@ -0,0 +1,422 @@ +--- +aliases: +- /es/database_monitoring/sql_extended_events +further_reading: +- link: /database_monitoring/ + tag: Documentación + text: Database Monitoring +- link: /database_monitoring/setup_sql_server/ + tag: Documentación + text: Configuración de SQL Server +- link: /database_monitoring/guide/parameterized_queries/ + tag: Documentación + text: Configuración de la captura de consultas con valores de parámetros +- link: /database_monitoring/troubleshooting/ + tag: Documentación + text: Solución de problemas de Database Monitoring +title: Configuración de la finalización de consultas y la captura de errores de consulta + en SQL Server +--- +Esta función recopila eventos de finalización de consultas y errores de consulta de sus instancias de SQL Server mediante eventos extendidos (XE). Proporciona visibilidad sobre: +- Métricas y comportamiento de las consultas SQL con valores de parámetros +- Errores y tiempos de espera que ocurrieron durante la ejecución + +Para obtener información sobre la captura de parámetros de consulta en diferentes sistemas de bases de datos, consulte [Configuración de la captura de consultas con valores de parámetros][1]. + +[1]: /es/database_monitoring/guide/parameterized_queries/ + +Estos datos son útiles para: +- Análisis de rendimiento +- Depuración del comportamiento de la aplicación +- Auditoría de errores o tiempos de espera inesperados + + +## Antes de comenzar {#before-you-begin} + +Debe configurar Database Monitoring para su instancia de [SQL Server][1] antes de continuar con esta guía. + + +Bases de datos compatibles +: SQL Server + +Implementaciones compatibles +: Todos los tipos de implementación. + +Versiones de Agent compatibles +: 7.67.0+ + +## Configuración {#setup} +{{< tabs >}} +{{% tab "SQL Server que no es de Azure" %}} + +1. En su instancia de SQL Server, cree las siguientes sesiones de Extended Events (XE). Estas sesiones se pueden crear en cualquier base de datos dentro de la instancia. + +La sesión XE `datadog_query_completions` captura consultas SQL de larga duración (más de 1 segundo) de llamadas RPC, lotes SQL y procedimientos almacenados. + +```sql +-- Query completions: RPC, batch, and stored procedure events +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON SERVER; +GO + +CREATE EVENT SESSION datadog_query_completions ON SERVER -- datadog requires this exact session name +ADD EVENT sqlserver.rpc_completed ( -- capture remote procedure call completions + ACTION ( -- datadog requires these exact actions for rpc_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.sql_batch_completed( -- capture batch completions + ACTION ( -- datadog requires these exact actions for sql_batch_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.module_end( -- capture stored procedure completions + SET collect_statement = (1) + ACTION ( -- datadog requires these exact actions for module_end + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not exceed 1024, values above 1 MB may result in data loss due to SQLServer internals + TRACK_CAUSALITY = ON, -- allows datadog to correlate related events across activity ID + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems (not supported on RDS) + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_completions ON SERVER STATE = START; +GO +``` + +La sesión XE datadog_query_errors captura errores SQL de [severity ≥ 11][1] y tiempos de espera de consulta (también conocidos como [attention events][2]), lo que permite a Datadog informar sobre fallas y tiempos de espera de consulta. + +```sql +-- Errors and timeouts: SQL errors and attention events +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON SERVER; +GO +CREATE EVENT SESSION datadog_query_errors ON SERVER +ADD EVENT sqlserver.error_reported( + ACTION( -- datadog requires these exact actions for error_reported + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE severity >= 11 +), +ADD EVENT sqlserver.attention( + ACTION( -- datadog requires these exact actions for attention + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not change, setting this larger than 1 MB may result in data loss due to SQLServer internals + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems (not supported on RDS) + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_errors ON SERVER STATE = START; +GO +``` + + **Nota**: Si utiliza Amazon RDS para SQL Server, elimine la línea `MEMORY_PARTITION_MODE = PER_NODE` de ambas configuraciones de sesión, ya que esta opción no es compatible con las instancias de RDS. + +2. En la configuración de Datadog Agent, habilite `collect_xe` en `sqlserver.d/conf.yaml`. +Consulte el [sample conf.yaml.example][3] para ver todas las opciones de configuración disponibles. + +```yaml + collect_xe: + query_completions: + enabled: true + query_errors: + enabled: true +``` +Para recopilar sentencias de consulta con valores de parámetros, habilite `collect_raw_query_statement` en `sqlserver.d/conf.yaml`. Para obtener más información sobre la captura de parámetros, consulte [Configuring Query Capture with Parameter Values][1]. + +```yaml + collect_raw_query_statement: + enabled: true +``` + +
Las sentencias de consulta sin procesar pueden contener información confidencial (por ejemplo, contraseñas en el texto de la consulta) o información de identificación personal. Habilitar esta opción permite a Datadog recopilar e ingerir sentencias de consulta sin procesar que aparecen en las muestras de consulta. Esta opción está deshabilitada de forma predeterminada.
+ +[1]: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-error-severities +[2]: https://learn.microsoft.com/en-us/sql/relational-databases/event-classes/attention-event-class +[3]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +{{% /tab %}} + +{{% tab "Azure DB" %}} + +1. En su base de datos de Azure SQL Server, cree las siguientes sesiones de Extended Events (XE): + +La sesión XE `datadog_query_completions` captura consultas SQL de larga duración (más de 1 segundo) de llamadas RPC, lotes SQL y procedimientos almacenados. + +```sql +-- Query completions: RPC, batch, and stored procedure events +IF EXISTS ( + SELECT * FROM sys.database_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON DATABASE; +GO + +CREATE EVENT SESSION datadog_query_completions ON DATABASE -- datadog requires this exact session name +ADD EVENT sqlserver.rpc_completed ( -- capture remote procedure call completions + ACTION ( -- datadog requires these exact actions for rpc_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.sql_batch_completed( -- capture batch completions + ACTION ( -- datadog requires these exact actions for sql_batch_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.module_end( -- capture stored procedure completions + SET collect_statement = (1) + ACTION ( -- datadog requires these exact actions for module_end + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not exceed 1024, values above 1 MB may result in data loss due to SQLServer internals + TRACK_CAUSALITY = ON, -- allows datadog to correlate related events across activity ID + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_completions ON DATABASE STATE = START; +GO +``` + +La sesión XE datadog_query_errors captura errores SQL de [severity ≥ 11][1] y tiempos de espera de consulta (también conocidos como [attention events][2]), lo que permite a Datadog informar sobre fallas y tiempos de espera de consulta. + +```sql +-- Errors and timeouts: SQL errors and attention events +IF EXISTS ( + SELECT * FROM sys.database_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON DATABASE; +GO +CREATE EVENT SESSION datadog_query_errors ON DATABASE +ADD EVENT sqlserver.error_reported( + ACTION( -- datadog requires these exact actions for error_reported + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE severity >= 11 +), +ADD EVENT sqlserver.attention( + ACTION( -- datadog requires these exact actions for attention + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not change, setting this larger than 1 MB may result in data loss due to SQLServer internals + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_errors ON DATABASE STATE = START; +GO +``` + +2. En la configuración de Datadog Agent, habilite `collect_xe` en `sqlserver.d/conf.yaml`. +Consulte el [sample conf.yaml.example][3] para ver todas las opciones de configuración disponibles. + +```yaml + collect_xe: + query_completions: + enabled: true + query_errors: + enabled: true +``` +Para recopilar sentencias de consulta con valores de parámetros, habilite `collect_raw_query_statement` en `sqlserver.d/conf.yaml`. Para obtener más información sobre la captura de parámetros, consulte [Configuring Query Capture with Parameter Values][1]. + +```yaml + collect_raw_query_statement: + enabled: true +``` + +
Las declaraciones de consulta sin procesar y los planes de ejecución pueden contener información confidencial (por ejemplo, contraseñas en el texto de la consulta) o información de identificación personal. Habilitar esta opción permite a Datadog recopilar e ingerir declaraciones de consulta sin procesar y planes de ejecución que aparecen en muestras de consultas o planes de explicación. Esta opción está deshabilitada de forma predeterminada.
+ +[1]: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-error-severities +[2]: https://learn.microsoft.com/en-us/sql/relational-databases/event-classes/attention-event-class +[3]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example + +{{% /tab %}} + +{{< /tabs >}} + +## Ajuste de eventos extendidos para su entorno (opcional) {#tuning-extended-events-for-your-environment-optional} + +Puede personalizar las sesiones de eventos extendidos para que se adapten mejor a sus necesidades específicas: + +### Umbral de duración de la consulta {#query-duration-threshold} +El umbral de duración de consulta predeterminado es `duration > 1000000` (1 segundo). Ajuste este valor para controlar cuántas consultas se capturan: + +- **Capturar más consultas**: reduzca el umbral (por ejemplo, `duration > 500000` para 500 ms) +- **Capturar menos consultas**: aumente el umbral (por ejemplo, `duration > 5000000` para 5 segundos) +
Establecer umbrales demasiado bajos puede resultar en una recopilación excesiva de eventos que afecte el rendimiento del servidor, pérdida de eventos debido a desbordamiento del búfer e información incompleta, ya que Datadog solo recopila los 1000 eventos más recientes por intervalo de recopilación.
+ +### Asignación de memoria {#memory-allocation} +- El valor predeterminado es `MAX_MEMORY = 1024 KB`. +- No exceda los 1024 KB, ya que valores más altos pueden causar pérdida de datos debido a [limitaciones internas de SQL Server][3]. +- Para servidores de alto volumen, se recomienda mantener esto en un máximo de 1024 KB. +- Para servidores con menor tráfico, una configuración de 512 KB puede ser suficiente. + +### Filtrado de eventos {#event-filtering} + +Para reducir el volumen de eventos, puede agregar filtros a la cláusula `WHERE`. Por ejemplo: + + ```sql + WHERE ( + sql_text <> '' AND + duration > 1000000 AND + -- Add custom filters here + database_name = 'YourImportantDB' AND -- Only track specific databases + username <> 'datadog' -- Exclude Datadog Agent queries or specific users + ) + ``` + +### Consideraciones de rendimiento {#performance-considerations} + +Los Eventos extendidos están diseñados para ser ligeros, pero pueden introducir cierta sobrecarga. Si nota problemas de rendimiento, considere hacer lo siguiente: + +- [Aumente el umbral de duración de la consulta](#query-duration-threshold) para limitar las consultas capturadas. +- [Agregue filtros más específicos](#event-filtering) para reducir el volumen de eventos. +- Deshabilite una o ambas sesiones durante los períodos de carga máxima ejecutando: + +```sql +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON SERVER; +GO +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON SERVER; +GO +``` + +### Consideraciones específicas de Azure {#azure-specific-considerations} + +Los entornos de Azure SQL Database suelen tener recursos más limitados. Para minimizar el impacto en el rendimiento: + +- [Utilice filtros más restrictivos](#event-filtering) si se encuentra en un nivel de servicio inferior. +- Si está utilizando grupos elásticos, haga un seguimiento del impacto en el rendimiento en todas las bases de datos. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/database_monitoring/setup_sql_server/ +[2]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +[3]: https://techcommunity.microsoft.com/blog/sqlserversupport/you-may-not-see-the-data-you-expect-in-extended-event-ring-buffer-targets8230-/315838 \ No newline at end of file diff --git a/hugo/content/es/error_tracking/backend/exception_replay.md b/hugo/content/es/error_tracking/backend/exception_replay.md index b1dffe1ed11..01d214b6409 100644 --- a/hugo/content/es/error_tracking/backend/exception_replay.md +++ b/hugo/content/es/error_tracking/backend/exception_replay.md @@ -2,151 +2,172 @@ aliases: - /es/tracing/error_tracking/executional_context - /es/tracing/error_tracking/execution_replay/ -description: Conoce más sobre Exception Replay para el seguimiento de errores. +description: Obtenga información sobre Exception Replay en Error Tracking. further_reading: - link: https://www.datadoghq.com/blog/exception-replay-datadog/ tag: Blog - text: Simplifica la depuración de la producción con Datadog Exception Replay + text: Simplifique la depuración en producción con Datadog Exception Replay - link: /tracing/live_debugger tag: Documentación - text: Más información sobre Datadog Live Debugger + text: Obtenga información sobre Datadog Live Debugger - link: /error_tracking/monitors tag: Documentación - text: Más información sobre los monitores de seguimiento de errores + text: Obtenga información sobre los monitores de Error Tracking - link: /tracing/error_tracking tag: Documentación - text: Más información sobre Error Tracking en servicios de backend de APM + text: Obtenga información sobre Error Tracking para servicios de backend de APM is_beta: true title: Exception Replay en Error Tracking --- -
-Exception Replay está generalmente disponible para Python, Java, .NET, PHP, y está habilitada por defecto -cuando es compatible. +Exception Replay está disponible de forma general para Python, Java, .NET, PHP y está habilitado de forma predeterminada +cuando sea compatible.
-## Información general +## Descripción general {#overview} -Exception Replay captura el contexto de ejecución y los valores de las variables locales cuando se produce una excepción, ayudándote a diagnosticar, -reproducir y resolver problemas más rápidamente. Registra el estado circundante, incluido el stack trace y los snapshots -de variables y, luego, muestra estos datos directamente en Error Tracking junto con el resto de los detalles del problema. +Exception Replay captura el contexto de ejecución y los valores de las variables locales cuando ocurre una excepción, lo que le ayuda a diagnosticar, +reproducir y resolver problemas más rápido. Registra el estado circundante, incluyendo la traza de pila y las +instantáneas de variables, y luego muestra estos datos directamente en Error Tracking junto con el resto de los detalles del problema. -{{< img src="tracing/error_tracking/error_tracking_executional_context-3.png" alt="Error Tracking Explorer con Exception Replay" style="width:90%" >}} +{{< img src="tracing/error_tracking/error_tracking_executional_context-3.png" alt="Explorador de Error Tracking Exception Replay" style="width:90%" >}} -Exception Replay está diseñado para su uso en producción. Los snapshots tienen una velocidad limitada y los datos confidenciales se -[redactan](#sensitive-data-redaction) automáticamente. Cuando está activada, espera excepciones en una aplicación y captura snapshots del -stack trace y las variables locales antes de reenviarlas a Datadog. +Exception Replay está diseñado para su uso en producción. Las instantáneas están limitadas en frecuencia y los datos confidenciales se redactan automáticamente +[redacted](#sensitive-data-redaction) Cuando está habilitado, espera excepciones en una aplicación y captura instantáneas de +la traza de pila y las variables locales antes de enviarlos a Datadog.
¿Qué productos son compatibles? Exception Replay solo está disponible para excepciones basadas en APM y no admite errores de Logs o RUM.
-## Requisitos y configuración +## Requisitos y configuración {#requirements-setup} -Exception Replay es compatible con Python, Java, .NET y PHP, y solo captura excepciones basadas en APM. Requiere -el [Datadog Agent][12] y una [aplicación instrumentada por APM][1]. Se puede activar para todo un -entorno, un servicio individual dentro de la aplicación, o un servicio específico utilizando variables de entorno. +Exception Replay es compatible con Python, Java, .NET y PHP, y captura solo excepciones basadas en APM. Requiere +el [Datadog Agent][12] y una [aplicación instrumentada con APM][1]. Puede habilitarlo para todo un +entorno, un servicio individual en la aplicación o un servicio específico mediante variables de entorno. -El método de activación depende de la versión del rastreador y de si está disponible [Remote Configuration][2]. Consulta la tabla -para más detalles. +El método de habilitación depende de su versión del rastreador y de si [Remote Configuration][2] está disponible. Consulte la tabla +a continuación para obtener más detalles. -| | Por entorno
(en bloque) | Por servicio
(dentro de la aplicación) | Por servicio
(Variable de entorno) | +| | Por entorno
(Masivo) | Por servicio
(En la aplicación) | Por servicio
(Variable de entorno) | |---|---|---|---| -| **Cómo habilitar** | Habilitado por defecto | Página de configuración | Variables de entorno | +| **Cómo habilitar** | Habilitado de forma predeterminada | Página de configuración | Variables de entorno | | **Versión del Agent** | v7.49.0+ | v7.49.0+ | v7.49.0+ | -| **Versiones mínimas de rastreador** | [Python][8] ≥ 3.15.0
[Java][9] ≥ 1.54.0
[.NET][10] ≥ 3.29.0 | [Python][8] ≥ 3.10.0
[Java][9] ≥ 1.48.0
[.NET][10] ≥ 3.29.0 | [Python][8] ≥ 1.16.0
[Java][9] ≥ 1.47.0
[.NET][10] ≥ 2.53.0
[PHP][11] ≥ 1.12.1 | -| **¿Requiere Remote Configuration?** | Sí | Sí | No | +| **Versiones mínimas del rastreador** | [Python][8] ≥ 3.15.0
[Java][9] ≥ 1.54.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.19.0 | [Python][8] ≥ 3.10.0
[Java][9] ≥ 1.48.0
[.NET][10] ≥ 3.29.0
[PHP][11] ≥ 1.19.0 | [Python][8] ≥ 1.16.0
[Java][9] ≥ 1.47.0
[.NET][10] ≥ 2.53.0
[PHP][11] ≥ 1.12.1 | +| **¿Se requiere Remote Configuration?** | Sí | Sí | No | -Para activar Exception Replay en la aplicación, ve a la página **Settings** (Configuración) de Exception Replay en Error Tracking, selecciona el -entorno o servicio deseado y cámbialo a **Enabled** (Habilitado). +Para habilitar Exception Replay en la aplicación, navegue a la página de Exception Replay {{< ui >}}Settings{{< /ui >}} en Error Tracking, seleccione el +entorno o servicio deseado y actívelo en {{< ui >}}Enabled{{< /ui >}}. -{{< img src="tracing/error_tracking/error_tracking_exception_replay_enablement.mp4" video="true" alt="Habilitar Exception Replay mediante la página de configuración" style="width:90%" >}} +{{< img src="tracing/error_tracking/error_tracking_exception_replay_enablement.mp4" video="true" alt="Habilitación de Exception Replay a través de la página de configuración" style="width:90%" >}} -Si la habilitación dentro de la aplicación no está disponible, establece la variable de entorno: +Si la habilitación en la aplicación no está disponible, establezca la variable de entorno: ```bash DD_EXCEPTION_REPLAY_ENABLED=true ``` -También se puede utilizar para anular la configuración dentro de la aplicación y tiene prioridad cuando se establecen ambas. +Esto también se puede usar para anular la configuración en la aplicación y tiene prioridad cuando ambos están establecidos. -### Crear un índice de logs para los snapshots de Exception Replay +### Crear un índice de registros para instantáneas de Exception Replay {#create-a-logs-index-for-exception-replay-snapshots} -Crea un índice de logs dedicado a los snapshots de Exception Replay y configúralo con la retención deseada y sin muestreo. +Cree un índice de registros dedicado a las instantáneas de Exception Replay y configúrelo con la retención deseada y sin muestreo. -- Ajusta el filtro para que coincida con `source:dd_debugger`. -- Asegúrate de que el índice tiene prioridad sobre otros índices que coincidan con esta etiqueta (la primera coincidencia gana). +- Establezca el filtro para que coincida con `source:dd_debugger`. +- Asegúrese de que el índice tenga prioridad sobre otros índices que coincidan con esta etiqueta (la primera coincidencia gana).
-¿Por qué crear un índice de logs? -Los snapshots de Exception Replay se emiten como logs enriquecidos con enlaces a los tramos originarios de APM. +¿Por qué crear un índice de registros? +Las instantáneas de Exception Replay se emiten como registros enriquecidos con enlaces a los spans de APM de origen.
-### Vincular tu código fuente +### Vincule su código fuente{#link-your-source-code} -Si habilitas la integración de código fuente de Datadog, podrás ver vistas previas del código directamente dentro de los stack traces de -Error Tracking. Cuando se capturan snapshots de Exception Replay, puedes pasar el cursor sobre los nombres de las variables en la vista previa del código para ver sus -valores capturados. +Si habilita la integración de código fuente de Datadog, puede ver vistas previas del código directamente dentro de su pila de Error Tracking +trazas. Cuando se capturan las instantáneas de Exception Replay, puede pasar el cursor sobre los nombres de las variables en la vista previa del código para visualizar +sus valores capturados. {{< img src="tracing/error_tracking/error_tracking_exception_replay_sci.mp4" video="true" alt="Exception Replay con integración de código fuente" style="width:90%" >}} -## Redacción de datos confidenciales +## Redacción de datos confidenciales{#sensitive-data-redaction} -Exception Replay aplica una redacción automática basada en modos e identificadores para garantizar la protección de los datos confidenciales antes de que -los snapshots estén disponibles. +Exception Replay aplica una redacción automática basada en modos e identificadores para garantizar que los datos confidenciales estén protegidos antes de que las instantáneas estén disponibles. +instantáneas estén disponibles. -### Redacción por modos +### Redacción basada en modo{#mode-based-redaction} Exception Replay tiene dos modos de redacción: -- **Modo estricto:** redacta todos los valores excepto números y booleanos. -- **Modo dirigido:** redacta patrones confidenciales conocidos como números de tarjetas de crédito, claves de API, IPs y otra PII. +- {{< ui >}}Strict Mode{{< /ui >}}: Redacta todos los valores excepto números y booleanos. +- {{< ui >}}Targeted Mode{{< /ui >}}: Redacta patrones confidenciales conocidos como números de tarjetas de crédito, claves de API, direcciones IP y otra información de identificación personal (PII). También ejecuta un escáner de secretos de alta entropía que redacta automáticamente los secretos probables, los cuales aparecen como `[REDACTED:HIGH_ENTROPY]` en las instantáneas. -Estos modos de redacción no pueden desactivarse, solo conmutarse, y el modo específico se aplica automáticamente en entornos de -preproducción como `staging` o `preprod`. +Estos modos de redacción no se pueden desactivar, solo cambiar, y Targeted Mode se aplica automáticamente en casos comunes. +entornos de preproducción como `staging` o `preprod`. -### Redacción basada en identificadores +### Redacción basada en identificadores {#identifier-based-redaction} -Los valores de las variables asociados a [identificadores confidenciales comunes][3] (por ejemplo, `password`, `accessToken` y términos similares) -se depuran antes de que los snapshots salgan del host. Cada rastreador incorpora reglas adicionales de redacción específicas del lenguaje -(por ejemplo, el rastreador de Python mantiene una lista de identificadores confidenciales por defecto). +Los valores de las variables asociados con [identificadores confidenciales comunes][3] (por ejemplo, `password`, `accessToken` y términos similares) +se depuran antes de que las instantáneas salgan del servidor. Se integran reglas de depuración adicionales específicas del lenguaje en cada tracer +(por ejemplo, el tracer de Python mantiene una lista de identificadores confidenciales predeterminados). -Puedes ampliar el comportamiento de redacción a través de: +Puede ampliar el comportamiento de redacción mediante: - Redacción personalizada basada en identificadores -- Reglas de redacción por clase/tipo +- Reglas de redacción basadas en clases/tipos - Reglas de Sensitive Data Scanner -Consulta la documentación [Dynamic Instrumentation Sensitive Data Scrubbing instructions][4] y [Sensitive Data Scanner][5] -para más detalles sobre la configuración. +Consulte las instrucciones de [Dynamic Instrumentation Sensitive Data Scrubbing][4] y la documentación de [Sensitive Data Scanner][5] +para obtener detalles de configuración.
-¿Por qué la instrucciones de DI? +¿Por qué instrucciones de DI? Exception Replay se basa en Dynamic Instrumentation (DI), por lo que sus -opciones de configuración de depuración de datos confidenciales también se aplican aquí. +opciones de configuración de redacción de datos confidenciales también se aplican aquí.
-## Solucionar problemas +## Solución de problemas {#troubleshooting} + +### Valores de variables faltantes {#missing-variable-values} + +Las instantáneas de Exception Replay están limitadas a **una instantánea por tipo de excepción por instancia por hora**. En algunos +entornos de ejecución, una instantánea solo se captura después de la **segunda aparición** de una excepción determinada. + +### Razones adicionales por las que una instantánea podría no aparecer {#additional-reasons-a-snapshot-may-not-appear} + +- La reproducción de excepciones no está habilitada +- La instantánea ocurrió fuera de la ventana de tiempo seleccionada +- Exclusiones de paquetes de terceros (use `DD_THIRD_PARTY_DETECTION_EXCLUDES` para incluirlos) +- Registros con `source:dd_debugger` faltantes debido a la configuración de retención de [Log Index][6] o a los [Filtros de exclusión][7] en los índices anteriores +- La reproducción de excepciones no está disponible en la región FedRAMP +- Java: En JDK 18 y versiones anteriores, es posible que no se admitan las clases compiladas con el flag `-parameters`. Spring 6+, Spring Boot 3+ y Scala usan este flag de forma predeterminada. + +Utilice la consulta `@error.debug_info_captured:true` en Error Tracking Explorer para encontrar errores con Exception Replay +instantáneas. -### Valores faltantes de las variables +### Mensajes WARN de BatchUploader en GovCloud (Java) {#batchuploader-warn-messages-on-govcloud-java} -Los snapshots de Exception Replay están limitados a **un snapshot por tipo de excepción, por instancia y por hora**. En algunos -tiempos de ejecución, un snapshot solo se captura después de la **segunda ocurrencia** de una excepción dada. +En sitios de GovCloud (`app.ddog-gov.com`), los tracers de Java pueden registrar mensajes WARN periódicos de `com.datadog.debugger.uploader.BatchUploader` con HTTP 403 y texto similar a `This traffic is not permitted on your account`. Esto es normal cuando se intentan realizar cargas relacionadas con el depurador en un sitio donde no se admiten Exception Replay, Dynamic Instrumentation y Code Origin for Spans. La funcionalidad principal de APM (trazas, métricas, perfiles, inyección de registros) no se ve afectada. -### Otras razones por las que puede no aparecer un snapshot +Para detener estos mensajes de registro, establezca las siguientes variables de entorno en el pod de la aplicación Java y reinicie la carga de trabajo: -- Exception Replay no habilitada -- El snapshot se produjo fuera del intervalo temporal seleccionado -- Exclusiones de paquetes de terceros (utiliza `DD_THIRD_PARTY_DETECTION_EXCLUDES` para incluirlos) -- Logs en los que falta `source:dd_debugger` debido a la configuración de retención del [Índice de logs][6] o [Filtros de exclusión][7] en índices anteriores -- Exception Replay no está disponible en la región FedRAMP -- Java: En JDK 18 o anteriores, es posible que las clases compiladas con el indicador `-parameters` no sean compatibles. Spring 6+, Spring Boot 3+ y Scala utilizan este indicador por defecto. +```bash +DD_EXCEPTION_REPLAY_ENABLED=false +DD_DYNAMIC_INSTRUMENTATION_ENABLED=false +DD_CODE_ORIGIN_FOR_SPANS_ENABLED=false +``` + +Alternativamente, utilice las propiedades del sistema de la JVM: + +```bash +-Ddd.exception.replay.enabled=false +-Ddd.dynamic.instrumentation.enabled=false +-Ddd.code.origin.for.spans.enabled=false +``` -Utiliza la consulta `@error.debug_info_captured:true` en Error Tracking Explorer para encontrar errores con snapshots de -Exception Replay. +Para confirmar la corrección, verifique el JSON de inicio del tracer (`DATADOG TRACER CONFIGURATION`) y compruebe que `debugger_exception_enabled`, `debugger_enabled` y `debugger_span_origin_enabled` sean todos `false`. Los mensajes WARN tienen una limitación de frecuencia de aproximadamente una vez cada cinco minutos, por lo que espere al menos ese tiempo después de reiniciar antes de confirmar que los mensajes se han detenido. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/events/triage_inbox.md b/hugo/content/es/events/triage_inbox.md new file mode 100644 index 00000000000..64840e462f0 --- /dev/null +++ b/hugo/content/es/events/triage_inbox.md @@ -0,0 +1,69 @@ +--- +aliases: +- /es/service_management/events/triage_inbox/ +further_reading: +- link: /events/ingest/ + tag: doc + text: Envíe eventos a Datadog +- link: /events/correlation/ + tag: doc + text: Obtenga más información sobre la correlación de eventos +- link: https://www.datadoghq.com/blog/datadog-event-management/ + tag: Blog + text: Agregue, correlacione y actúe sobre las alertas más rápido con AIOps-powered + Event Management +site_support_id: case_management +title: Event Management Triage Inbox +--- +## Descripción general {#overview} + +Datadog Event Management [Triage Inbox][4] simplifica la respuesta a incidentes al consolidar eventos relacionados de cualquier fuente en elementos de trabajo procesables. Esta vista centralizada reduce el ruido y ayuda a los equipos a clasificar, investigar y colaborar de manera más efectiva. Con vistas guardadas personalizables, puede mantenerse enfocado en elementos de trabajo de alta prioridad y revisar alertas correlacionadas, cambios relacionados y telemetría, todo en un solo lugar. + +## Clasificación e investigación de elementos de trabajo {#triaging-and-investigating-work-items} + +La clasificación e investigación de elementos de trabajo comienza en el Triage Inbox, donde puede ordenar, filtrar y gestionar los elementos de trabajo entrantes. Colabore con sus compañeros de equipo, tanto dentro como fuera de Datadog, para coordinar las respuestas. Desde allí, puede priorizar, asignar, investigar y escalar elementos de trabajo según sea necesario para lograr una resolución más rápida. + +{{< img src="/events/triage_inbox/event_mgmt_inbox.mp4" alt="Event Management Inbox, clasificación por prioridad, resaltando el menú desplegable de cambio de estado y prioridad" video=true >}} + +## Introducción {#getting-started} + +1. Navegue a [{{< ui >}}Event Management{{< /ui >}} > {{< ui >}}Triage Inbox{{< /ui >}}][4]. +2. Seleccione un proyecto del panel izquierdo para mostrar vistas de estado listas para usar como {{< ui >}}Open{{< /ui >}}, {{< ui >}}In Progress{{< /ui >}}, {{< ui >}}Closed{{< /ui >}} y {{< ui >}}Archived{{< /ui >}}. +3. Utilice el icono de configuración de pantalla para elegir entre {{< ui >}}split view{{< /ui >}} (para una investigación detallada de elementos de trabajo) o {{< ui >}}table view{{< /ui >}} (para la revisión masiva de elementos de trabajo y la configuración de columnas). Personalice la clasificación de su Event Management Inbox con el menú desplegable {{< ui >}}Sort By{{< /ui >}}; las opciones incluyen {{< ui >}}Priority{{< /ui >}}, {{< ui >}}Created at{{< /ui >}} o {{< ui >}}Last Updated{{< /ui >}}. Haga clic en {{< ui >}}Save{{< /ui >}} para reutilizar su Event Management Inbox personalizada en el futuro. +5. Actualice el estado, la prioridad y la asignación directamente en las tarjetas de elementos de trabajo durante la clasificación. +6. Maximice el espacio de la pantalla contrayendo el panel izquierdo de proyectos de elementos de trabajo y la barra de navegación de Datadog. +7. Pase el cursor sobre la tarjeta de elemento de trabajo en el recuento de **alerta** para obtener una vista previa de las alertas correlacionadas. + +## Próximos pasos {#next-steps} + +Ahora que ha aprendido a clasificar e investigar elementos de trabajo, utilice estas herramientas para [colaborar](#collaborate-and-integrate) con su equipo, [tomar medidas](#take-action) sobre las causas raíz y agilizar los esfuerzos de respuesta. + +## Colaborar e integrar {#collaborate-and-integrate} + +En el panel lateral derecho de vista dividida, puedes realizar lo siguiente: + +- {{< ui >}}Tag and comment{{< /ui >}}: Colabore con sus compañeros de equipo en la línea de tiempo del elemento de trabajo etiquetando usuarios y añadiendo notas. +- {{< ui >}}Send notifications{{< /ui >}}: Alerte a las partes interesadas mediante Slack, Microsoft Teams, correo electrónico o webhooks. +- {{< ui >}}Escalate issues{{< /ui >}}: Inicie un incidente o contacte a un responsable On-Call mediante [Incident Management][1], [On-Call][2], [Workflow Automation][3] o herramientas de terceros. +- {{< ui >}}Sync with external tools{{< /ui >}}: Mantenga sincronizados los registros de Jira y ServiceNow para asegurar que las partes interesadas externas se mantengan actualizadas. + + {{< img src="/events/triage_inbox/event_mgmt_inbox_right_hand_panel.png" alt="Panel derecho de Event Management Inbox, resaltando el menú desplegable Escalate" style="width:100%;" >}} + +## Tomar acción {#take-action} + +- {{< ui >}}Mark root cause{{< /ui >}}: Identifique y marque un evento relacionado, como un cambio defectuoso, como la causa raíz. +- {{< ui >}}Run workflows{{< /ui >}}: Ejecute los runbooks de remediación manualmente o actívelos condicionalmente con [Work Item Automation Rules][5]. +- {{< ui >}}Merge work items{{< /ui >}}: Combine elementos de trabajo relacionados para agilizar las investigaciones. +- {{< ui >}}Split work items{{< /ui >}}: Separe las alertas que requieren una investigación individual. + +**Nota**: Cuando todas las alertas en un elemento de trabajo se resuelven, el sistema cierra automáticamente el elemento de trabajo. También puede marcar manualmente un elemento de trabajo como resuelto. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/incident_response/incident_management/ +[2]: /es/incident_response/on-call/ +[3]: /es/actions/workflows/ +[4]: https://app.datadoghq.com/event/correlation +[5]: /es/incident_response/work_management/automation_rules/ \ No newline at end of file diff --git a/hugo/content/es/experiments/_index.md b/hugo/content/es/experiments/_index.md new file mode 100644 index 00000000000..46cd7b6b389 --- /dev/null +++ b/hugo/content/es/experiments/_index.md @@ -0,0 +1,105 @@ +--- +description: Planifique, ejecute y analice experimentos aleatorios en toda su pila + con Datadog Experiments. +further_reading: +- link: /feature_flags/ + tag: Documentación + text: Feature Flags +- link: /product_analytics/ + tag: Documentación + text: Product Analytics +- link: /feature_flags/guide/apm_trace_enrichment/ + tag: Guía + text: Configure el enriquecimiento de trazas de APM para Feature Flags +- link: https://www.datadoghq.com/blog/product-signal-latency-gap/ + tag: Blog + text: La brecha de latencia de la señal del producto que ralentiza su crecimiento +- link: https://www.datadoghq.com/blog/ab-testing/ + tag: Blog + text: Todos los equipos deberían realizar pruebas A/B +- link: https://www.datadoghq.com/blog/experiments + tag: Blog + text: Mida el impacto comercial de cada cambio de producto con Datadog Experiments +title: Experimentos +--- +## Resumen {#overview} + +Datadog Experiments es una plataforma componible para la experimentación de extremo a extremo. Un experimento en Datadog consta de dos componentes: + +1. Una **asignación aleatoria** de [sujetos][18] (normalmente usuarios) a dos o más variaciones, ya sea desde un [Datadog Feature Flag][1] o desde su sistema de aleatorización preferido +2. Un conjunto de **métricas** para comparar entre variantes, calculadas dentro de Datadog o con análisis nativos de almacén de datos. + +Para comenzar, seleccione un enlace de la tabla a continuación. De lo contrario, siga leyendo para obtener más información sobre Datadog Experiments. + +| Enlaces rápidos | | +| :---- | :---- | +| [Conecte un almacén de datos][13] | Configure Snowflake, BigQuery, Redshift o Databricks para el análisis de experimentos nativo del almacén | +| [Cree una métrica nativa del almacén][14] | Defina Metric SQL Models y métricas de experimentos a partir de datos del almacén | +| [Cree una métrica a partir de datos de Product Analytics o Real User Monitoring][15] | Cree métricas de experimentos a partir de eventos de RUM del lado del cliente y Product Analytics | +| [Lance un experimento usando Datadog Feature Flags][16] | Planifique su hipótesis, configure la aleatorización con Datadog Feature Flags e inicie su experimento | +| [Estandarice experimentos con protocolos][21] | Defina valores predeterminados reutilizables para métricas, aleatorización, duración y análisis estadístico | +| [Analice un experimento que ya ha sido aleatorizado][17] | Defina datos de exposición en su almacén cuando la aleatorización se ejecute fuera de Datadog Feature Flags | +| [Comprenda los diagnósticos de experimentos][20] | Interprete las verificaciones automatizadas para exposiciones, métricas, aleatorización y estado del análisis | + +## Aleatorización {#randomization} + +Cada experimento necesita una forma de asignar sujetos a una variante de control o de tratamiento. Datadog admite dos enfoques. + +### Datadog Feature Flags {#datadog-feature-flags} + +[Datadog Feature Flags][1] es la forma predeterminada de aleatorizar experimentos. Cree un Feature Flag, impleméntelo con el [Feature Flags SDK][9] y pase un identificador de sujeto estable como `targetingKey` para que el mismo usuario siempre reciba la misma variante. Datadog utiliza hashing determinista para mantener las asignaciones consistentes entre sesiones y dispositivos. + +Cuando [planifique y lance un experimento][16], vincúlelo a un Feature Flag para definir divisiones de tráfico, reglas de segmentación y comportamiento de despliegue. También puede crear un experimento directamente desde la página de detalles de un Feature Flag. Para aleatorizar por una unidad distinta al usuario (por ejemplo, una organización), consulte [Tipos de sujeto][18]. + +### Traiga su propia aleatorización {#bring-your-own-randomization} + +Si aleatoriza sujetos fuera de Datadog (por ejemplo, con un sistema interno), utilice [Exposure SQL Models][17] para indicar a Datadog quién estuvo expuesto a cada experimento y cuándo. Los Exposure SQL Models consultan registros de exposición de su [almacén conectado][13] y los asignan a campos de Datadog como clave de sujeto, marca de tiempo, ID de experimento e ID de variante. + +Datadog deduplica los datos de exposición automáticamente: si un usuario aparece en múltiples variantes para el mismo experimento, ese usuario se excluye del análisis. Cuando las exposiciones provienen de su almacén en lugar de Datadog Feature Flags, las métricas creadas a partir de eventos del SDK de Datadog no son compatibles; necesita [métricas nativas de almacén][14]. + +## Métricas {#metrics} + +Las métricas de experimento definen lo que usted mide para decidir si un cambio tuvo éxito. Cree al menos una métrica principal antes de lanzar un experimento y agregue métricas secundarias como salvaguardas para efectos no deseados en el rendimiento, la participación o los ingresos. + +### Modo nativo de almacén {#warehouse-native-mode} + +En el modo nativo de almacén, Datadog ejecuta el análisis de experimentos directamente en Snowflake, BigQuery, Redshift o Databricks. Después de [conectar su almacén][13], cree un **Metric SQL Model** que asigne tablas de almacén a Datadog, luego defina métricas a partir de ese modelo. Asigne cada modelo a uno o más [tipos de sujeto][18] y especifique una columna de marca de tiempo para que Datadog pueda unir eventos de métricas con exposiciones de experimentos. + +El modo de almacén es necesario cuando utiliza [Exposure SQL Models][17] para la aleatorización. También es adecuado para equipos cuya fuente de información para las métricas de negocio ya reside en el almacén. + +### Product Analytics y RUM {#product-analytics-and-rum} + +Para experimentos del lado del cliente, cree métricas a partir de eventos recopilados por los SDK de [Real User Monitoring (RUM)][2] y [Product Analytics][3]. Defina métricas a partir de acciones, visualizaciones, sesiones y otros tipos de eventos, luego elija un método de agregación como recuento de eventos, recuento de usuarios únicos o suma de una propiedad. + +Esta ruta funciona cuando la aleatorización se ejecuta a través de [Datadog Feature Flags][1] y desea medir el comportamiento de los usuarios, la conversión del embudo o el rendimiento de la aplicación sin consultar un almacén. Las métricas de Product Analytics y RUM están disponibles casi en tiempo real a medida que se lanzan los experimentos. + +## Estadísticas {#statistics} + +Datadog aplica análisis estadístico para comparar variantes y estimar el incremento. Cuando configure un experimento, elija un [método de análisis][11] (frecuentista secuencial, frecuentista de muestra fija o bayesiano) y, opcionalmente, ejecute un [cálculo de tamaño de muestra][8] para estimar cuánto tiempo debe ejecutarse el experimento. Una vez obtenidos los resultados, utilice [Global Lift][19] para comprender cómo se traduce un incremento de experimento dirigido en un impacto en el total de métricas de toda su empresa, y [Cumulative Impact][12] para agregar efectos ajustados por ruido en muchos experimentos sobre la misma métrica. + +{{< img src="/product_analytics/experiment/overview_metrics_view-1.png" alt="La visualización de métricas de Experimentos que muestra métricas de negocio, de embudo y de rendimiento con valores de control y variante, además del incremento relativo para cada métrica. Se muestra un tooltip en la métrica Revenue que presenta los valores Non-CUPED para Revenue per User, Total Revenue y User Assignment Count en los grupos de control y variante." style="width:90%;" >}} + +## Lecturas adicionales {#further-reading} +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/feature_flags/ +[2]: /es/real_user_monitoring/ +[3]: /es/product_analytics/#getting-started +[4]: /es/experiments/defining_metrics +[5]: /es/experiments/plan_and_launch_experiments +[6]: /es/getting_started/feature_flags/#create-your-first-feature-flag +[7]: /es/experiments/plan_and_launch_experiments#step-3---launch-your-experiment +[8]: /es/experiments/plan_and_launch_experiments/#run-a-sample-size-calculation-optional +[9]: /es/getting_started/feature_flags/#feature-flags-sdks +[10]: /es/experiments/guide/ +[11]: /es/experiments/statistics/analysis_methods +[12]: /es/experiments/concepts/cumulative_impact +[13]: /es/experiments/guide/connecting_a_data_warehouse/ +[14]: /es/experiments/defining_metrics/?tab=warehouse +[15]: /es/experiments/defining_metrics/?tab=productanalyticsorum +[16]: /es/experiments/plan_and_launch_experiments/ +[17]: /es/experiments/concepts/exposure_sql/ +[18]: /es/experiments/concepts/subject_types/ +[19]: /es/experiments/statistics/global_lift +[20]: /es/experiments/diagnostics/ +[21]: /es/experiments/protocols/ \ No newline at end of file diff --git a/hugo/content/es/feature_flags/server/_index.md b/hugo/content/es/feature_flags/server/_index.md new file mode 100644 index 00000000000..cbf4e3740c0 --- /dev/null +++ b/hugo/content/es/feature_flags/server/_index.md @@ -0,0 +1,204 @@ +--- +description: Configure los Feature Flags de Datadog para aplicaciones del lado del + servidor. +further_reading: +- link: /feature_flags/client/ + tag: Documentación + text: Feature Flags del lado del cliente +- link: /remote_configuration/ + tag: Documentación + text: Remote Configuration +- link: /feature_flags/guide/server_flag_evaluation_metrics/ + tag: Guía + text: Configure las métricas de evaluación de flags del lado del servidor +- link: /feature_flags/concepts/flag_graphs/ + tag: Concepto + text: Gráficos de Feature Flag +- link: /feature_flags/implementation_patterns/serverless/ + tag: Documentación + text: Entornos serverless y Feature Flags +- link: /feature_flags/concepts/configuration_sources/ + tag: Concepto + text: Fuentes de configuración del SDK del servidor +- link: /feature_flags/guide/apm_trace_enrichment/ + tag: Guía + text: Configure el enriquecimiento de trazas de APM para Feature Flags +title: Feature Flags del lado del servidor +--- +## Descripción general {#overview} + +Los Feature Flags de Datadog para aplicaciones del lado del servidor le permiten controlar de forma remota la disponibilidad de funciones, ejecutar experimentos e implementar nuevas funcionalidades con confianza. Los SDK del lado del servidor reciben la configuración de los flags y evalúan los flags localmente. Algunos SDK utilizan un Datadog tracer para la entrega de configuración o telemetría. + +Los Feature Flags de Datadog están basados en el estándar [OpenFeature](https://openfeature.dev/docs/reference/intro/), una especificación de código abierto y neutral respecto al proveedor para las API de Feature Flags. Si es nuevo en los conceptos de OpenFeature como proveedores, contexto de evaluación y hooks, consulte la [documentación de conceptos de OpenFeature](https://openfeature.dev/docs/category/concepts). + +## Entrega de configuración {#configuration-delivery} + +La [entrega de configuración][8] sin agente es la predeterminada en las versiones del SDK del servidor que la admiten. El SDK obtiene la configuración de los flags directamente desde la CDN administrada por Datadog a través de HTTPS, y luego evalúa los flags localmente. No se requiere un Datadog Agent para la configuración de los flags. + +La fuente predeterminada no activa el tráfico de Feature Flags para todas las instalaciones del tracer. El sondeo sin agente comienza solo cuando el código de la aplicación inicializa o accede al proveedor OpenFeature de Datadog. Seleccionar explícitamente `remote_config` activa la suscripción de Remote Configuration para Feature Flags. Las solicitudes a través de cualquiera de las fuentes contribuyen a la facturación de Feature Flags del servidor. + +| SDK | Versión mínima sin agente | +|---|---| +| Java `dd-openfeature` y `dd-java-agent` | 1.65.0 | +| Node.js `dd-trace` v5 | 5.116.0 | +| Node.js `dd-trace` v6 | 6.5.0 | +| Python `ddtrace` | 4.14.0 | + +La entrega por CDN para Java requiere `dd-openfeature` y `dd-java-agent`. No requiere un Datadog Agent para la configuración de los flags. + +
Las versiones iniciales de Node.js sin agente solo admiten la entrega de configuración y la evaluación local de flags. No exportan métricas de evaluación ni eventos de exposición. La entrega sin agente para Java y Python solo cambia la fuente de configuración. Java y Python no exportan estas señales sin un Datadog Agent compatible o una ruta de telemetría sin servidor.
+ +La entrega Agentless está disponible para los SDK y las versiones enumeradas. Otros SDK de servidor utilizan Agent Remote Configuration. + +## Elija un idioma {#choose-a-language} + +Seleccione su idioma o framework para ver las instrucciones de configuración específicas del SDK: + +{{< card-grid card_width="200px" >}} + {{< image-card href="/feature_flags/server/dotnet/" src="integrations_logos/dotnet_text.png" alt=".NET" >}} + {{< image-card href="/feature_flags/server/go/" src="integrations_logos/go-metro.png" alt="Go" >}} + {{< image-card href="/feature_flags/server/java/" src="integrations_logos/java.png" alt="Java" >}} + {{< image-card href="/feature_flags/server/nodejs/" src="integrations_logos/nodejs.png" alt="Node.js" >}} + {{< image-card href="/feature_flags/server/php/" src="integrations_logos/php.png" alt="PHP" >}} + {{< image-card href="/feature_flags/server/python/" src="integrations_logos/python.png" alt="Python" >}} + {{< image-card href="/feature_flags/server/ruby/" src="integrations_logos/ruby.png" alt="Ruby" >}} +{{< /card-grid >}} + +Para entornos de ejecución Serverless, consulte [Entornos Serverless][5] para conocer la configuración Agentless, los requisitos de versión y las limitaciones iniciales de telemetría. + +## Requisitos previos {#prerequisites} + +Los requisitos dependen del SDK seleccionado y de la fuente de configuración. Los requisitos estándar incluyen: + +- Las versiones del tracer específico del lenguaje o del proveedor de OpenFeature enumeradas en la página del SDK. +- Una [clave de API][2] de Datadog + +La entrega por CDN de Java requiere el agente de Java en el proceso de la aplicación. No requiere rastreo de APM ni un servicio de Datadog Agent independiente. + +Los requisitos específicos de la fuente son: + +| Fuente | Requisitos | +|---|---| +| `agentless` (predeterminado donde sea compatible) | Configure `DD_API_KEY`, `DD_SITE` y `DD_ENV` en el proceso de la aplicación. No se requiere ningún Agente para la configuración de flags. | +| `remote_config` | Datadog Agent 7.55 o posterior con Remote Configuration habilitado, la clave de API configurada en el Datadog Agent y Remote Configuration habilitado para su organización en [{{< ui >}}Organization Settings{{< /ui >}}][3]. Java también requiere versiones compatibles de `dd-openfeature` y `dd-java-agent`. | + +## Agentless configuration {#agentless-configuration} + +En una [versión de SDK compatible](#configuration-delivery), configure el proceso de la aplicación: + +{{< code-block lang="bash" >}} +# Required for direct configuration delivery +DD_API_KEY= +DD_SITE={{< region-param key="dd_site" code="true" >}} +DD_ENV= +{{< /code-block >}} + +No se requiere la habilitación de Feature Flags ni la configuración de la fuente. Consulte [Feature Flags de Java][10], [Feature Flags de Node.js][9] o [Feature Flags de Python][11] para conocer las versiones de dependencia y la inicialización específica del lenguaje. La inicialización o el acceso al proveedor inician el sondeo de CDN; la instalación y la inicialización del tracer por sí solas no lo hacen. + +## Agent Remote Configuration {#agent-remote-configuration} + +Para Java, Node.js y Python, establezca la fuente explícitamente para mantener la entrega administrada por Agent Remote Configuration. + +{{< code-block lang="bash" >}} +DD_FEATURE_FLAGS_CONFIGURATION_SOURCE=remote_config +{{< /code-block >}} + +Remote Configuration está habilitado de forma predeterminada en el Datadog Agent 7.47.0 y versiones posteriores. Si su Datadog Agent tiene Remote Configuration deshabilitado, vuelva a habilitarlo configurando `DD_REMOTE_CONFIGURATION_ENABLED=true` o agregando `remote_configuration.enabled: true` a su `datadog.yaml`. + +Consulte la [Remote Configuration documentation][1] para obtener instrucciones de configuración detalladas en todos los entornos de implementación. + +Las implementaciones existentes de Java, Node.js y Python con `DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true` permanecen en Remote Configuration durante un período de migración. La configuración está obsoleta. Consulte [Migrar desde la configuración del proveedor heredado][7] para permanecer en Remote Configuration de manera explícita o pasar a la entrega sin agente. + +### Remote Configuration polling interval {#remote-configuration-polling-interval} + +El Agent sondea a Datadog en busca de actualizaciones de configuración en un intervalo configurable: + +{{< code-block lang="bash" >}} +# Optional: Configure the Agent polling interval (default: 60s) +DD_REMOTE_CONFIGURATION_REFRESH_INTERVAL=10s +{{< /code-block >}} + +## Configuración avanzada de la aplicación {#advanced-application-configuration} + +Configure su aplicación con las variables de entorno estándar de Datadog. Estos son comunes en todos los SDK del lado del servidor: + +{{< code-block lang="bash" >}} +# Required: Service identification +DD_SERVICE= +DD_ENV= +DD_VERSION= + +# Optional: Disable Feature Flags and both delivery paths +# DD_FEATURE_FLAGS_ENABLED=false + +# Optional: Enable flag evaluation metrics +# See "Set Up Server-Side Flag Evaluation Metrics" documentation +{{< /code-block >}} + +
En las versiones de Java, Node.js y Python enumeradas anteriormente, DD_FEATURE_FLAGS_ENABLED se establece de forma predeterminada en true, por lo que no necesita configurarlo. Configurarlo en false deshabilita el proveedor, el sondeo de CDN y la suscripción de Remote Configuration de Feature Flags. Otros SDK de servidor continúan utilizando la configuración de activación documentada en sus páginas de lenguaje.
+ +Para los SDK y modos de entrega que lo admiten, consulte Configurar métricas de evaluación de flags del lado del servidor para habilitar la feature_flag.evaluations métrica. Las versiones iniciales de Node.js sin agente no exportan métricas de evaluación ni eventos de exposición. Java y Python requieren un Datadog Agent compatible o una ruta de telemetría sin servidor para exportar estas señales. Consulte Gráficos de Feature Flags para obtener más información sobre los gráficos disponibles. Consulte Configurar el enriquecimiento de trazas de APM para Feature Flags para adjuntar datos de evaluación de Feature Flags a las trazas de APM para filtrado y experimentación. + +## Pruebas con proveedores en memoria {#testing-with-in-memory-providers} + +Datadog admite estos enfoques de prueba: + +- **Pruebas de integración**: Apunte `DatadogProvider` a un entorno de prueba dedicado y controle los valores de los flags desde la interfaz de usuario de Datadog. Esto ejercita el proveedor real y la fuente de configuración seleccionada de extremo a extremo. +- **Pruebas unitarias**: Intercambie `DatadogProvider` por el `InMemoryProvider` estándar de OpenFeature (o un stub de prueba equivalente, donde no haya un proveedor en memoria disponible en el lenguaje) y establezca los valores de los flags directamente en el código de prueba. Esto mantiene las pruebas herméticas y sin conexión. + +Esta sección cubre el enfoque en memoria. Debido a que la API de OpenFeature está diseñada para que los proveedores sean intercambiables en tiempo de ejecución, el código de su aplicación no cambia; solo el proveedor registrado durante la configuración de la prueba. + +Una prueba típica sigue este patrón: + +1. Cree un mapa de claves de indicadores a variantes en la configuración de su prueba. +2. Registre un `InMemoryProvider` con ese mapa a través de la API de OpenFeature. +3. Llame al cliente de OpenFeature en las unidades que se están probando. El `InMemoryProvider` devuelve las asignaciones de indicadores configuradas en la configuración de la prueba. +4. Restablezca el proveedor en la finalización de la prueba para evitar la fuga de estado entre pruebas. + +Consulte la página del SDK de su lenguaje (seleccione en la parte superior de esta página) para ver un ejemplo concreto de prueba. + +## Requisitos de atributos de contexto {#context-attribute-requirements} + +
+Los atributos del contexto de evaluación deben ser valores primitivos planos (cadenas, números, booleanos). Los objetos y arreglos anidados no son compatibles y provocarán que los eventos de exposición se descarten silenciosamente. +
+ +Utilice atributos planos en su contexto de evaluación: + +{{< code-block lang="javascript" >}} +const evaluationContext = { + targetingKey: req.session?.userID, + companyId: req.session?.companyID, + tier: 'enterprise' +}; + +const value = client.getBooleanValue('my-flag', false, evaluationContext); +{{< /code-block >}} + +Evite objetos y arreglos anidados: + +{{< code-block lang="javascript" >}} +// These attributes will cause exposure events to be dropped +const evaluationContext = { + targetingKey: req.session?.userID, + company: { id: req.session?.companyID }, // nested object - NOT SUPPORTED + roles: ['admin', 'user'] // array - NOT SUPPORTED +}; +{{< /code-block >}} + +## Lecturas adicionales {#further-reading} + +Para despliegues basados en porcentajes y segmentación determinista, consulte [División de tráfico y aleatorización](/feature_flags/concepts/traffic_splitting/). + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/remote_configuration +[2]: /es/account_management/api-app-keys/#api-keys +[3]: https://app.datadoghq.com/organization-settings/remote-config +[4]: /es/tracing/guide/#tutorials-enabling-tracing +[5]: /es/feature_flags/implementation_patterns/serverless/ +[7]: /es/feature_flags/concepts/configuration_sources/#migrate-an-existing-remote-configuration-setup +[8]: /es/feature_flags/concepts/configuration_sources/ +[9]: /es/feature_flags/server/nodejs/ +[10]: /es/feature_flags/server/java/ +[11]: /es/feature_flags/server/python/ \ No newline at end of file diff --git a/hugo/content/es/getting_started/integrations/_index.md b/hugo/content/es/getting_started/integrations/_index.md index 61209ab19d0..05e09c463ec 100644 --- a/hugo/content/es/getting_started/integrations/_index.md +++ b/hugo/content/es/getting_started/integrations/_index.md @@ -1,64 +1,68 @@ --- -description: Unifica métricas y logs de infraestructura utilizando integraciones basadas - en el Agent, basadas en la autenticación y de biblioteca. +description: Unifique las métricas y los registros de la infraestructura mediante + integraciones basadas en Agent, basadas en autenticación y basadas en bibliotecas. further_reading: - link: https://learn.datadoghq.com/courses/intro-to-integrations tag: Centro de aprendizaje - text: Introducción a las integraciones + text: Introducción a Integrations +- link: https://learn.datadoghq.com/courses/getting-started-integrations + tag: Centro de aprendizaje + text: Primeros pasos con Integrations - link: /integrations/ tag: Documentación - text: Consulta la lista de integraciones de Datadog + text: Vea una lista de Integrations de Datadog - link: https://www.datadoghq.com/blog/1k-integrations-milestone/ tag: Blog - text: 'Escalado de la observabilidad de Datadog: 1.000 integraciones y más' -title: Introducción a las integraciones + text: 'Escalamiento de la observabilidad de Datadog: 1,000 Integrations y contando' +title: Introducción a Integrations --- +## Descripción general {#overview} -## Información general +Esta es una guía para el uso de Integrations. Si busca información sobre cómo crear una nueva Integration, consulte la página [Crear una nueva Integration][1]. -En esta guía, te explicamos cómo utilizar las integraciones. Si lo que buscas es información sobre cómo crear una integración nueva, consulta la página [Crear una nueva integración][1]. +Una Integration, en el nivel más alto, es cuando usted ensambla un sistema unificado a partir de unidades que generalmente se consideran por separado. En Datadog, usted puede utilizar Integrations para reunir todas las métricas y registros de su infraestructura y obtener información sobre el sistema unificado en su conjunto; usted puede ver las piezas individualmente y también cómo las piezas individuales están afectando al todo. -Una integración, al más alto nivel, se produce cuando se ensambla un sistema unificado a partir de unidades que normalmente se consideran por separado. En Datadog, puedes utilizar integraciones para reunir todas las métricas y registros de tu infraestructura y obtener información sobre el sistema unificado como un todo: puedes ver las secciones de forma individual, así como el impacto que estas tienen sobre el conjunto. +**Nota**: Es mejor comenzar a recopilar métricas en sus proyectos lo antes posible en el proceso de desarrollo, pero usted puede comenzar en cualquier etapa. -**Nota**: Lo mejor es empezar a recopilar métricas sobre tus proyectos desde la fase más temprana posible del proceso de desarrollo, pero puedes empezar en cualquier momento. +Datadog ofrece tres tipos principales de Integrations: -Datadog ofrece tres tipos principales de integraciones: +Las Integrations - **basadas en Agent** se instalan con el Datadog Agent y utilizan un método de clase de Python llamado `check` para definir las métricas que se deben recopilar. +Las Integrations - **basadas en autenticación (rastreador)** se configuran en [Datadog][2], donde usted proporciona las credenciales para obtener métricas con la API. Estas incluyen Integrations populares como [Slack][3], [AWS][4], [Azure][5] y [PagerDuty][6]. +Las Integrations de - **biblioteca** utilizan la [Datadog API][7] para permitirle hacer un seguimiento de las aplicaciones según el lenguaje en el que estén escritas, como [Node.js][8] o [Python][9]. -- Integraciones **basadas en el Agent** que se instalan con el Datadog Agent y utilizan un método de clase Python denominado `check` para definir las métricas que se deben recopilar. -- Integraciones **basadas en (un rastreador de) autenticación** que se configuran en [Datadog][2] y donde el usuario debe introducir las credenciales para obtener métricas con la API. Entre ellas, hay integraciones tan populares como [Slack][3], [AWS][4], [Azure][5] y [PagerDuty][6]. -- Integraciones de **bibliotecas** que utilizan la [API de Datadog][7] para poder monitorizar aplicaciones en función del lenguaje en el que estén redactadas, como, por ejemplo, [Node.js][8] o [Python][9]. +También puede crear una [verificación personalizada][10] para definir y enviar métricas a Datadog desde su sistema interno único. -También puedes crear un [check personalizado][10] para definir y enviar métricas a Datadog desde tu propio sistema interno. +## Configuración de una Integration {#setting-up-an-integration} -## Configurar una integración +El paquete del Datadog Agent incluye Integrations compatibles oficialmente con Datadog, en [integrations core][11]. Para utilizar esas Integrations, descargue el Datadog Agent. Las Integrations basadas en la comunidad se encuentran en [integrations extras][12]. Para obtener más información sobre la instalación o administración de estas Integrations, consulte la [guía de administración de Integrations][14]. -El paquete del Datadog Agent incluye integraciones compatibles oficialmente con Datadog en el [núcleo de integraciones][11]. Para poder utilizar esas integraciones, es necesario descargar el Datadog Agent. Las integraciones basadas en la comunidad se encuentran en [integraciones adicionales][12]. Para obtener más información sobre cómo instalar o gestionar estas integraciones, consulta la [guía de gestión de integraciones][14]. +### Permisos{#permissions} -### Permisos +Se requiere el permiso de Gestión de Integrations para interactuar con un mosaico de Integration. Consulte [roles RBAC][45] para obtener más información. -El permiso de gestión de integraciones es necesario para interactuar con el cuadro de una integración. Para obtener más información, consulta [Roles RBAC][45]. +### Claves de API y de aplicación {#api-and-application-keys} -### Claves de API y de aplicación +Para [instalar el Datadog Agent][15], necesita una [clave de API][16]. Si el Agent ya está descargado, asegúrese de configurar la clave de API en el archivo `datadog.yaml`. Para utilizar la mayoría de las funcionalidades adicionales de Datadog además del envío de métricas y eventos, necesita una [clave de aplicación][16]. Puede gestionar las claves de API y de aplicación de sus cuentas en la [página de Configuración de API][17]. -Para [instalar el Datadog Agent][15], necesitas una [clave de API][16]. Si ya te has descargado el Agent, recuerda configurar la clave de API en el archivo `datadog.yaml`. Además, es necesaria una [clave de aplicación][16] para utilizar la mayoría de las funcionalidades adicionales de Datadog, así como para enviar métricas y eventos. Puedes gestionar las claves de API y de aplicación de tus cuentas en la [página de Configuración de la API][17]. +### Instalación {#installation} -### Instalación +Si desea conectarse con una integración basada en rastreador o biblioteca, navegue a ese proveedor en la [página de Integrations][18] para obtener instrucciones específicas sobre cómo conectarse. Para otras integraciones compatibles, instale el [Datadog Agent][15]. La mayoría de las integraciones son compatibles con los Agents en contenedores: [Docker][19] y [Kubernetes][20]. Después de descargar el Agent, vaya a la [página Integrations][18] para encontrar instrucciones de configuración específicas para cada integración. -En caso de que quieras conectarte con una integración basada en un rastreador o biblioteca, accede a ese proveedor a través de la [página de Integrations (Integraciones)][18] para consultar las instrucciones específicas para conectarte. Para el resto de las integraciones compatibles, instala el [Datadog Agent][15]. La mayoría de las integraciones son compatibles con los siguientes Agents contenedorizados: [Docker][19] y [Kubernetes][20]. Después de descargar el Agent, ve a la [página de Integraciones][18] para consultar las instrucciones de configuración específicas de cada integración. +### Configuración de integraciones del Agent {#configuring-agent-integrations} -### Configurar las integraciones del Agent +
Puede configurar las integraciones del Agent de forma remota en toda su flota desde una interfaz de usuario y una API centralizadas con Fleet Automation, en lugar de editar conf.yaml archivos en cada servidor. Descubra servicios detectados automáticamente, limite una configuración a cualquier subconjunto de servidores mediante etiqueta o filtro de servidor, y realice la implementación en cada Agent coincidente en una sola acción. Esto requiere Remote Configuration y la versión 7.76 o posterior del Agent en máquinas virtuales Linux o Windows.
-La mayoría de los parámetros de configuración son propios de cada [integración][18]. Accede a la carpeta `conf.d` en la raíz del directorio de configuración de tu Agent para configurar las integraciones. Todas cuentan con una carpeta llamada `.d` que contiene el archivo `conf.yaml.example`. En el siguiente archivo de ejemplo, se muestran todas las opciones de configuración disponibles para la integración en cuestión. +La mayoría de los parámetros de configuración son específicos de la [integración individual][18]. Configure las integraciones del Agent navegando a la carpeta `conf.d` en la raíz del directorio de configuración de su Agent. Cada integración tiene una carpeta llamada `.d`, que contiene el archivo `conf.yaml.example`. Este archivo de ejemplo enumera todas las opciones de configuración disponibles para la integración en particular. -Para activar una integración concreta: +Para activar una integración determinada: -1. Cambia el nombre del archivo `conf.yaml.example` (en la carpeta de `.d` correspondiente) a `conf.yaml`. -2. Actualiza los parámetros obligatorios dentro del archivo de configuración que acabas de crear con los valores que se correspondan con tu entorno. -3. [Reinicia el Datadog Agent][21]. +1. Cambie el nombre del archivo `conf.yaml.example` (en la carpeta `.d` correspondiente) a `conf.yaml`. +2. Actualice los parámetros requeridos dentro del archivo de configuración recién creado con los valores correspondientes a su entorno. +3. [Reinicie el Datadog Agent][21]. -**Nota**: Todos los archivos de configuración siguen el formato que se describe en la [especificación @param][22]. +**Nota**: Todos los archivos de configuración siguen el formato documentado en [@param specification][22]. -A continuación, puedes ver un ejemplo del archivo de configuración `conf.yaml` mínimo necesario para recopilar métricas y logs de la [integración de Apache][23]: +Por ejemplo, este es el archivo de configuración `conf.yaml` mínimo necesario para recopilar métricas y registros de la [integración de apache][23]: ```yaml init_config: @@ -78,7 +82,7 @@ logs: sourcecategory: http_web_access ``` -Si quieres monitorizar varias instancias de Apache en el mismo check del Agent, añade más instancias a la sección `instances`: +Para hacer un seguimiento de múltiples instancias de Apache en la misma verificación del Agent, agregue instancias adicionales a la sección `instances`: ```yaml init_config: @@ -91,30 +95,30 @@ instances: service: remote-apache ``` -#### Intervalo de recopilación +#### Intervalo de recolección {#collection-interval} -El intervalo de recopilación predeterminado para todas las integraciones estándar de Datadog es de 15 segundos. Si quieres cambiar este intervalo, utiliza el parámetro `min_collection_interval`. Para obtener más información, consulta la sección [Actualizar el intervalo de recopilación][24]. +El intervalo de recolección predeterminado para todas las Integrations estándar de Datadog es de 15 segundos. Para cambiar el intervalo de recolección, utilice el parámetro `min_collection_interval`. Para obtener más detalles, consulte [Updating the collection interval][24]. -### Etiquetado +### Etiquetado {#tagging} -El etiquetado es clave para filtrar y agregar los datos que llegan a Datadog desde diversas fuentes. Para obtener más información sobre el etiquetado, consulta [Empezando con las etiquetas (tags)][25]. +El etiquetado es una parte clave del filtrado y la agregación de los datos que llegan a Datadog desde muchas fuentes. Para obtener más información sobre el etiquetado, consulte [Getting started with tags][25]. -Si defines etiquetas en el archivo `datadog.yaml`, se aplicarán a todos los datos de tus integraciones. Una vez que definas una etiqueta en `datadog.yaml`, la heredarán todas las nuevas integraciones. +Si define etiquetas en el archivo `datadog.yaml`, las etiquetas se aplican a todos los datos de sus Integrations. Una vez que haya definido una etiqueta en `datadog.yaml`, todas las nuevas Integrations la heredan. -Por ejemplo, la [configuración del Agent][26] recomendada para monitorizar sistemas separados e independientes consiste en definir `service` en tu archivo de configuración. +Por ejemplo, establecer `service` en su archivo de configuración es la [configuración del Agent][26] recomendada para monitorear sistemas independientes y separados. -También es recomendable configurar la etiqueta `env` en el Agent para unificar mejor el entorno. Si deseas obtener más información, consulta [Etiquetado de servicios unificado][27]. +Para unificar mejor su entorno, también se recomienda configurar la etiqueta `env` en el Agent. Para obtener más información, consulte [Unified Service Tagging][27]. -#### Configuración de etiquetas por cada check -Puedes personalizar el comportamiento de las etiquetas de cada check sobreescribiendo la configuración global de Agent: +#### Configuración de etiquetas por verificación {#per-check-tag-configuration} +Puede personalizar el comportamiento de las etiquetas para verificaciones individuales, anulando la configuración global a nivel de Agent: -1. **Desactivar las etiquetas de Autodiscovery** +1. **Deshabilitar etiquetas de Autodiscovery** - Por defecto, las métricas informadas por las integraciones incluyen etiquetas detectadas automáticamente en el entorno. Por ejemplo, las métricas informadas por un check Redis que se ejecuta dentro de un contenedor incluyen etiquetas asociadas al contenedor, como `image_name`. Puedes desactivar este comportamiento configurando el parámetro `ignore_autodiscovery_tags` como `true`. + De forma predeterminada, las métricas reportadas por las integraciones incluyen etiquetas detectadas automáticamente desde el entorno. Por ejemplo, las métricas reportadas por una verificación de Redis que se ejecuta dentro de un contenedor incluyen etiquetas asociadas con el contenedor, como `image_name`. Puede desactivar este comportamiento configurando el parámetro `ignore_autodiscovery_tags` en `true`. -1. **Configurar la cardinalidad de las etiquetas por cada check de integración** +1. **Establecer la cardinalidad de etiquetas por verificación de integración** - Puedes definir el nivel de cardinalidad de las etiquetas (bajo, orquestador o elevado) por cada check utilizando el parámetro `check_tag_cardinality`. Esta acción sobreescribe la configuración global de la cardinalidad de las etiquetas definida en la configuración del Agent. + Puede definir el nivel de cardinalidad de etiquetas (baja, orquestador o alta) por cada verificación utilizando el parámetro `check_tag_cardinality`. Esto anula la configuración global de cardinalidad de etiquetas definida en la configuración del Agent. ```yaml init_config: @@ -127,111 +131,113 @@ check_tag_cardinality: low # Rest of the config here ``` -### Validación +Para entornos en contenedores, también puede establecer estos parámetros a través de [Kubernetes Autodiscovery annotations][47]. + +### Validación {#validation} -Para validar la configuración de tu Agent y tus integraciones, [ejecuta el subcomando `status` del Agent][28] y busca la nueva configuración en la sección Checks (Comprobaciones). +Para validar la configuración de su Agent e Integrations, [ejecute el subcomando `status` del Agent][28] y busque la nueva configuración en la sección Checks. -## Instalar varias integraciones +## Instalación de múltiples Integrations {#installing-multiple-integrations} -Para instalar más de una integración, basta con añadir la información de configuración en un nuevo archivo `conf.yaml` dentro de la carpeta `.d` correspondiente. Busca los parámetros necesarios para la nueva integración en el archivo `conf.yaml.example`, añádelos al nuevo archivo `conf.yaml` y sigue los mismos pasos para validar tu configuración. +Instalar más de una Integration es cuestión de agregar la información de configuración a un nuevo archivo `conf.yaml` en la carpeta `.d` correspondiente. Busque los parámetros requeridos para la nueva Integration en el archivo `conf.yaml.example`, agréguelos al nuevo archivo `conf.yaml` y luego siga los mismos pasos para validar su configuración. -## Integraciones detectadas de manera automática +## Integraciones autodetectadas {#autodetected-integrations} -Si configuras la [recopilación de procesos][29], Datadog detectará de forma automática las tecnologías que se ejecutan en tus hosts. De este modo, se identificarán las integraciones de Datadog que pueden ayudarte a monitorizar estas tecnologías. Estas integraciones detectadas automáticamente se muestran en la [búsqueda de integraciones][2]: +Si configura la [recopilación de procesos][29], Datadog autodetecta las tecnologías que se ejecutan en sus servidores. Esto identifica las Integrations de Datadog que pueden ayudarle a hacer un seguimiento de estas tecnologías. Estas Integrations autodetectadas se muestran en la [Integrations search][2]: -{{< img src="getting_started/integrations/ad_integrations_1.png" alt="Integraciones detectadas automáticamente" >}} +{{< img src="getting_started/integrations/ad_integrations_1.png" alt="Integrations autodetectadas" >}} -Cada integración tiene uno de los cuatro tipos de estado: +Cada Integration tiene uno de cuatro tipos de estado: -- **Detected** (Detectada): la tecnología se está ejecutando en un host, pero la integración no está instalada ni configurada y solo se recopilan métricas parciales. Configura la integración para obtener una cobertura completa. Para encontrar una lista de hosts que estén ejecutando una tecnología detectada automáticamente, abre el cuadro de integraciones y selecciona la pestaña **Hosts**. -- **Installed** (Instalada): esta integración está instalada y configurada en un host. -- **Available** (Disponible): todas las integraciones que no entran en las categorías **Installed** y **Detected**. -- **Faltan datos**: No se detectaron métricas de integración en las últimas 24 horas. +- {{< ui >}}Detected{{< /ui >}}: La tecnología se está ejecutando en un servidor, pero la Integration no se ha instalado ni configurado y solo se están recopilando métricas parciales. Configure la integración para una cobertura completa. Para encontrar una lista de hosts que ejecutan una tecnología autodetectada, abra el mosaico de integraciones y seleccione la pestaña {{< ui >}}Hosts{{< /ui >}}. +- {{< ui >}}Installed{{< /ui >}}: Esta integración está instalada y configurada en un servidor. +- {{< ui >}}Available{{< /ui >}}: Todas las integraciones que no entran en las categorías {{< ui >}}Installed{{< /ui >}} y {{< ui >}}Detected{{< /ui >}}. +- {{< ui >}}Missing Data{{< /ui >}}: No se han detectado métricas de integración en las últimas 24 horas. -## Protocolos de seguridad +## Security practices {#security-practices} -Para obtener información sobre cómo Datadog maneja tus datos y otras cuestiones de seguridad, consulta la [documentación acerca de la seguridad][30]. +Para obtener información sobre cómo Datadog maneja sus datos y otras consideraciones de seguridad, consulte el [Security documentation][30]. -## Control de acceso preciso -Por defecto, el acceso a los recursos de una integración (cuentas, servicios, webhooks) no está restringido. Se pueden utilizar controles de acceso granulares para restringir el comportamiento de usuarios, equipos, funciones o toda la organización a nivel de recursos de la integración. +## Control de acceso granular {#granular-access-control} +De forma predeterminada, el acceso a los recursos de integración (cuentas, servicios, webhooks) no está restringido. Se pueden usar controles de acceso granulares para restringir el comportamiento de usuarios, equipos, roles o toda su organización a nivel de recurso de integración. -**Nota**: La opción de acceso restringido sólo es visible si integración admite el control de acceso granular. Para verificar si el control de acceso granular es compatible con una integración, consulta la [documentación de la integración][46]. -{{< img src="getting_started/integrations/GRACE integration-account-modal.png" alt="Controles de acceso granular" style="width:70%;" >}} +**Nota**: La opción de acceso restringido solo es visible si la integración admite el control de acceso granular. Para verificar si se admite el control de acceso granular para una integración, revise la [documentación de esa integración][46]. +{{< img src="getting_started/integrations/GRACE integration-account-modal.png" alt="Controles de acceso granulares" style="width:70%;" >}} -1. Mientras visualizas una integración, ve a la pestaña **Configurar** y busca el recurso (cuenta, servicio, webhook) al que deben aplicarse controles de acceso granular. -2. Haz clic en **Set Permissions** (Configurar permisos). -3. Por defecto, todos los miembros de tu organización tienen acceso total. Haz clic en **Restrict Access** (Restringir el acceso). -4. El cuadro de diálogo se actualiza para mostrar que los miembros de tu organización tienen por omisión el permiso de acceso **Viewer** (Visualización). -5. Utiliza el menú desplegable para seleccionar uno o varios equipos, roles o usuarios que puedan editar el monitor. - **Nota**: El permiso de [gestión de integraciones][45] también es necesario para editar recursos individuales. -6. Haz clic en **Add** (Añadir). +1. Mientras visualiza una integración, navegue a la pestaña {{< ui >}}Configure{{< /ui >}} y localice el recurso (cuenta, servicio, webhook) al que se deben aplicar los controles de acceso granulares. +2. Haga clic en {{< ui >}}Set Permissions{{< /ui >}}. +3. De forma predeterminada, todos en su organización tienen acceso completo. Haga clic en {{< ui >}}Restrict Access{{< /ui >}}. +4. El cuadro de diálogo se actualiza para mostrar que los miembros de su organización tienen acceso {{< ui >}}Viewer{{< /ui >}} de forma predeterminada. +5. Use el menú desplegable para seleccionar uno o más equipos, roles o usuarios que puedan editar el monitor. + **Nota**: También se requiere el permiso [Integrations Manage][45] para editar recursos individuales. +6. Haga clic en {{< ui >}}Add{{< /ui >}}. 7. El cuadro de diálogo se actualiza para mostrar los permisos actualizados. -8. Haz clic en **Save** (Guardar). La página de la integración se actualiza automáticamente con los permisos actualizados. +8. Haga clic en {{< ui >}}Save{{< /ui >}}. La página de integración se actualiza automáticamente con los permisos actualizados. -**Nota:** Para mantener el acceso de edición al recurso, el sistema requiere que incluyas al menos un rol o equipo al que pertenezcas antes de guardar. +**Nota:** Para mantener el acceso de edición al recurso, el sistema requiere que incluya al menos un rol o equipo del que usted sea miembro antes de guardar. -Para restablecer el acceso general a un recurso de integración con acceso restringido, sigue estos pasos: +Para restaurar el acceso general a un recurso de integración con acceso restringido, siga los pasos a continuación: -1. Mientras visualizas una integración, ve a la pestaña **Configurar** y busca el recurso (cuenta, servicio, webhook) al que se debe restablecer el acceso general. -2. Haz clic en **Set Permissions** (Configurar permisos). -3. Haz clic en **Restore Full Access** (Restablecer acceso completo). -4. Haz clic en **Save** (Guardar). La página de la integración se actualiza automáticamente con los permisos actualizados. +1. Mientras visualiza una integración, navegue a la pestaña {{< ui >}}Configure{{< /ui >}} y localice el recurso (cuenta, servicio, webhook) al que se le debe restaurar el acceso general. +2. Haga clic en {{< ui >}}Set Permissions{{< /ui >}}. +3. Haga clic en {{< ui >}}Restore Full Access{{< /ui >}}. +4. Haga clic en {{< ui >}}Save{{< /ui >}}. La página de integración se actualiza automáticamente con los permisos actualizados. -## ¿Qué toca hacer ahora? +## ¿Qué sigue? {#whats-next} -Después de configurar tu primera integración, [explora todas las métricas][31] que tu aplicación envía a Datadog y utilízalas para empezar a configurar [dashboards][32] y [alertas][33] para monitorizar tus datos. +Después de configurar su primera integración, [explore todas las métricas][31] que su aplicación envía a Datadog y utilice estas métricas para comenzar a configurar [dashboards][32] y [alerts][33] para hacer un seguimiento de sus datos. -Consulta también las siguientes soluciones de Datadog: [Log Management][34], [APM][35] y [Synthetic Monitoring][36]. +Consulte también las soluciones de [Log Management][34], [APM][35] y [Synthetic Monitoring][36] de Datadog. -## Solucionar problemas +## Solución de problemas {#troubleshooting} -El primer paso para solucionar problemas de integración es utilizar un plugin en tu editor de código o elegir alguna de las numerosas herramientas disponibles online para verificar que el YAML es válido. A continuación, ejecuta todos los pasos descritos en [Solucionar problemas del Agent][37]. +El primer paso para solucionar problemas de una integración es usar un complemento en su editor de código o usar una de las muchas herramientas en línea para verificar que el YAML sea válido. El siguiente paso es seguir todos los pasos de [Agent troubleshooting][37]. -Si sigues teniendo problemas, ponte en contacto con el [equipo de asistencia de Datadog][38]. +Si continúa teniendo problemas, comuníquese con el [Datadog support][38]. -## Términos clave +## Términos clave {#key-terms} `conf.yaml` -: Crea el archivo `conf.yaml` en la carpeta `conf.d/.d`, en la raíz del [directorio de configuración del Agent][39], y utilízalo para conectar integraciones a tu sistema y para configurar sus ajustes. +: Usted crea el `conf.yaml` en la carpeta `conf.d/.d` en la raíz de su [Agent's configuration directory][39]. Utilice este archivo para conectar integraciones a su sistema, así como para configurar sus ajustes. -check personalizado -: Si tienes un sistema único y quieres monitorizarlo, o si vas a ampliar las métricas que ya se envían mediante una integración, puedes crear un [check personalizado][10] para definir y enviar métricas a Datadog. Sin embargo, si quieres monitorizar una aplicación disponible de forma general, un servicio público o un proyecto de código abierto, y la integración no existe, puedes [crear una nueva integración][1] en lugar de un check personalizado. +verificación personalizada +: Si usted tiene un sistema único que desea hacer un seguimiento, o si va a expandir las métricas ya enviadas por una integración, puede crear una [verificación personalizada][10] para definir y enviar métricas a Datadog. Sin embargo, si usted desea hacer un seguimiento de una aplicación de disponibilidad general, un servicio público o un proyecto de código abierto y la integración no existe, considere [crear una nueva integración][1] en lugar de una verificación personalizada. `datadog.yaml` -: Se trata del archivo de configuración principal donde debes definir cómo interactúa el Agent en su totalidad con sus propias integraciones y con tu sistema. Utiliza este archivo para actualizar claves de API, proxies, etiquetas de host y otros ajustes generales. +: Este es el archivo de configuración principal donde usted define cómo el Agent en su conjunto interactúa con sus propias integraciones y con su sistema. Utilice este archivo para actualizar claves de API, proxies, etiquetas de servidor y otros ajustes globales. evento -: Los eventos son mensajes informativos sobre tu sistema que [el explorador de eventos][40] utiliza para que puedas crear monitores a partir de ellos. +: Los eventos son mensajes informativos sobre su sistema que son consumidos por [the events explorer][40] para que usted pueda crear monitores sobre ellos. instancia -: En el archivo `conf.yaml`, se define y asigna la instancia de lo que se está monitorizando. Por ejemplo, en la [integración `http_check`][41], defines el nombre asociado a la instancia del endpoint HTTP que vas a monitorizar durante los tiempos de actividad y caída del sistema. Puedes monitorizar **varias instancias** en la misma integración al definir todas las instancias en el archivo `conf.yaml`. +: Usted define y asigna la instancia de lo que sea que esté monitoreando en el archivo `conf.yaml`. Por ejemplo, en la [`http_check` integration][41], usted define el nombre asociado con la instancia del punto de conexión HTTP del que está monitoreando el tiempo de actividad y de inactividad. Usted puede hacer un seguimiento de **múltiples instancias** en la misma integración, y lo hace definiendo todas las instancias en el archivo `conf.yaml`. `.d` -: Si se trata de una configuración compleja, puedes dividirla en varios archivos `YAML` y, después, almacenarlos todos en la carpeta `.d` para definir la configuración. El Agent carga cualquier archivo `YAML` válido en la carpeta `.d`. +: Si usted tiene una configuración compleja, puede dividirla en múltiples archivos `YAML` y luego almacenarlos todos en la carpeta `.d` para definir la configuración. El Agent carga cualquier archivo `YAML` válido en la carpeta `.d`. -logs -: Si el sistema que estás monitorizando tiene logs, personaliza los que envías a Datadog con la [solución Log Management][34]. +registro +: Si el sistema que usted está monitoreando tiene registros, personalice los registros que envía a Datadog utilizando la [Log Management solution][34]. `metadata.csv` -: Archivo que muestra una lista de las métricas recopiladas por cada integración y las almacena. +: El archivo que enumera y almacena las métricas recopiladas por cada integración. métricas -: La lista que cada integración recopila de tu sistema. Puedes encontrar las métricas de cada integración en el archivo `metadata.csv` de cada integración en particular. Para obtener más información sobre las métricas, consulta la página para desarrolladores [Métricas][42]. También puedes configurar [métricas personalizadas][43]; de modo que si la integración no ofrece una métrica de forma predeterminada, puedes añadirla. +: La lista de lo que se recopila de su sistema mediante cada integración. Puede encontrar las métricas para cada integración en el archivo `metadata.csv` de esa integración y en la tabla **Datos recopilados** en la página de documentación de la integración. En esa tabla, una métrica enumerada con *Shown as \* ya tiene una unidad definida en los metadatos de la integración. Una métrica sin esta notación no tiene una unidad establecida de forma predeterminada, por lo que debe configurar una manualmente en la página de [metric summary][48]. Para obtener más información sobre las métricas, consulte la página para desarrolladores de [Metrics][42]. También puede configurar [métricas personalizadas][43], por lo que si la integración no ofrece una métrica de forma inmediata, generalmente puede agregarla. parámetros -: Utiliza los parámetros del archivo `conf.yaml` para controlar los accesos entre tu fuente de datos de la integración y el Agent. El archivo `conf.yaml.example` de las integraciones incluye una lista con todos los parámetros obligatorios y opcionales. +: Utilice los parámetros en el archivo `conf.yaml` para controlar los accesos entre su fuente de datos de integración y el Agent. El archivo `conf.yaml.example` de las integraciones individuales tiene enumerados todos los parámetros requeridos y no requeridos. -Check de servicio -: Los checks de servicio son un tipo de monitor que se utiliza para hacer un seguimiento del estado del tiempo de actividad del servicio. Para obtener más información, consulta la [guía sobre checks de servicio][44]. +verificación de servicio +: Las verificaciones de servicio son un tipo de monitor utilizado para rastrear el estado de tiempo de actividad del servicio. Para obtener más información, consulte la [Service checks guide][44]. -Etiquetado -: Las [etiquetas][25] te permiten personalizar las métricas para que puedas filtrarlas y visualizarlas de la forma que te resulte más útil. +etiquetado +: [Tags] are a way to add customization to metrics so that you can filter and visualize them in the most useful way to you. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: /es/developers/integrations/agent_integration/ +[1]: /es/extend/integrations/agent_integration/ [2]: https://app.datadoghq.com/account/settings [3]: /es/integrations/slack/ [4]: /es/integrations/amazon_web_services/ @@ -240,7 +246,7 @@ Etiquetado [7]: /es/api/ [8]: /es/integrations/node/ [9]: /es/integrations/python/ -[10]: /es/developers/custom_checks/write_agent_check/ +[10]: /es/extend/custom_checks/write_agent_check/ [11]: https://github.com/DataDog/integrations-core [12]: https://github.com/DataDog/integrations-extras [14]: /es/agent/guide/integration-management/ @@ -251,9 +257,9 @@ Etiquetado [19]: https://app.datadoghq.com/account/settings/agent/latest?platform=docker [20]: https://app.datadoghq.com/account/settings/agent/latest?platform=kubernetes [21]: /es/agent/guide/agent-commands/#restart-the-agent -[22]: /es/developers/integrations/check_references/#param-specification +[22]: /es/extend/integrations/check_references/#param-specification [23]: https://github.com/DataDog/integrations-core/blob/master/apache/datadog_checks/apache/data/conf.yaml.example -[24]: /es/developers/custom_checks/write_agent_check/#updating-the-collection-interval +[24]: /es/extend/custom_checks/write_agent_check/#updating-the-collection-interval [25]: /es/getting_started/tagging/ [26]: /es/getting_started/agent/#setup [27]: /es/getting_started/tagging/unified_service_tagging/ @@ -275,4 +281,6 @@ Etiquetado [43]: /es/metrics/custom_metrics/ [44]: /es/monitors/guide/visualize-your-service-check-in-the-datadog-ui/ [45]: /es/account_management/rbac/permissions/#integrations -[46]: /es/integrations/ \ No newline at end of file +[46]: /es/integrations/ +[47]: /es/containers/kubernetes/integrations/#tag-cardinality +[48]: https://app.datadoghq.com/metric/summary \ No newline at end of file diff --git a/hugo/content/es/integrations/_index.md b/hugo/content/es/integrations/_index.md index 81ed355d201..4f33165c902 100644 --- a/hugo/content/es/integrations/_index.md +++ b/hugo/content/es/integrations/_index.md @@ -1,8 +1,8 @@ --- algolia: tags: - - integración - - configuración de la integración + - integration + - integration setup aliases: - /es/integrations/verisign_openhybrid/ - /es/integrations/snyk/ @@ -17,14 +17,17 @@ aliases: - /es/integrations/perimeterx/ - /es/integrations/open-policy-agent/ - /es/integrations/open_policy_agent/ +- /es/integrations/coreos/ +- /es/integrations/ubuntu/ +- /es/integrations/amazon-opsworks/ cascade: - _target: lang: en path: /integrations/azure algolia: - category: Documentación + category: Documentation rank: 80 - subcategory: Integraciones + subcategory: Integrations tags: - azure - microsoft azure @@ -32,18 +35,18 @@ cascade: lang: en path: /integrations/kubernetes_state_core algolia: - category: Documentación + category: Documentation rank: 60 - subcategory: Integraciones + subcategory: Integrations tags: - ksm - _target: lang: en path: /integrations/google_cloud_platform algolia: - category: Documentación + category: Documentation rank: 80 - subcategory: Integraciones + subcategory: Integrations tags: - gcp - google cloud platform @@ -51,9 +54,9 @@ cascade: lang: en path: /integrations/amazon_web_services algolia: - category: Documentación + category: Documentation rank: 80 - subcategory: Integraciones + subcategory: Integrations tags: - aws - amazon web services @@ -61,28 +64,31 @@ cascade: lang: en path: /integrations/eks_fargate algolia: - category: Documentación + category: Documentation rank: 60 - subcategory: Integraciones + subcategory: Integrations tags: - - generación de logs eks + - eks logging - _target: lang: en path: /integrations/event-viewer algolia: - category: Documentación + category: Documentation rank: 60 - subcategory: Integraciones + subcategory: Integrations tags: - - visor de eventos -description: Reúne datos de todos tus sistemas, aplicaciones y servicios + - event viewer +- _target: + lang: en + path: /integrations/confluent-cloud + site_support_id: confluent_cloud_integration +description: Recopile datos de todos sus sistemas, aplicaciones y servicios disable_sidebar: true -title: Integraciones +title: Integrations --- +Más de {{< translate key="integration_count" >}} Integrations integradas. Visualice todos sus sistemas, aplicaciones y servicios. -Más de {{< translate key="integration_count" >}} integraciones incorporadas. Visualiza todos tus sistemas, aplicaciones y servicios. - -¿Qué es una integración? Consulta [Introducción a las integraciones][1]. +¿Qué es una Integrations? Consulte [Introducción a las Integrations][1]. {{< integrations >}} diff --git a/hugo/content/es/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose.md b/hugo/content/es/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose.md index 6b45749425b..e912f97e008 100644 --- a/hugo/content/es/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose.md +++ b/hugo/content/es/integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose.md @@ -1,87 +1,102 @@ --- +description: Transmita métricas de CloudWatch a Datadog a través de Amazon Data Firehose + para una ingesta de baja latencia. further_reading: - link: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html tag: Documentación - text: Metric Streams - Amazon CloudWatch + text: Transmisión de métricas - Amazon CloudWatch - link: https://www.datadoghq.com/blog/amazon-cloudwatch-metric-streams-datadog/ tag: Blog - text: Recopilación de métricas de Amazon CloudWatch con Metric Streams + text: Recopile métricas de Amazon CloudWatch mediante Metric Streams title: AWS CloudWatch Metric Streams con Amazon Data Firehose --- +Al utilizar Amazon CloudWatch Metric Streams y Amazon Data Firehose, puede obtener métricas de CloudWatch en Datadog con solo dos a tres minutos de latencia. Esto es significativamente más rápido que el enfoque de sondeo de API predeterminado de Datadog, que proporciona métricas actualizadas cada 10 minutos. Puede obtener más información sobre el enfoque de sondeo de API en la [documentación de retraso de métricas en la nube][1]. -Con Amazon CloudWatch Metric Streams y Amazon Data Firehose, puedes obtener métricas de CloudWatch en Datadog con una latencia de solo dos a tres minutos. Esto es significativamente más rápido que el enfoque de sondeo de API predeterminado de Datadog, que proporciona métricas actualizadas cada 10 minutos. Puedes obtener más información sobre el enfoque de sondeo de API en la [documentación de Cloud Metric Delay][1]. - -## Información general +## Descripción general {#overview} {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric_streaming_diagram.png" alt="Diagrama del flujo de métricas" responsive="true">}} -1. Crea un CloudWatch Metric Stream en cada cuenta y región de AWS para la que desees transmitir métricas. - - Opcionalmente, especifica un conjunto limitado de espacios de nombres o métricas para transmitir. -2. Una vez que creas el Metric Stream, Datadog comienza a recibir inmediatamente las métricas transmitidas y las muestra en el sitio de Datadog sin necesidad de configuración adicional. +1. Cree un Metric Stream de CloudWatch en cada cuenta y región de AWS para las que desee transmitir métricas. + - Opcionalmente, especifique un conjunto limitado de espacios de nombres o métricas para transmitir. +2. Una vez que cree el Metric Stream, Datadog comienza a recibir inmediatamente las métricas transmitidas y las muestra en el sitio de Datadog sin necesidad de configuración adicional. + +
El filtrado de etiquetas configurado en el mosaico de integración de AWS también se aplica a CloudWatch Metric Streams.
+ +### Diferencias entre la transmisión de métricas y el sondeo de API {#streaming-vs-polling} + +Las siguientes son diferencias clave entre el uso de Amazon CloudWatch Metric Streams y el sondeo de API. + +- **Métricas que se reportan con más de dos horas de retraso**: el sondeo de API continúa recopilando métricas como `aws.s3.bucket_size_bytes` y `aws.billing.estimated_charges` después de que se habilita la transmisión de métricas, ya que estas no se pueden enviar a través de Amazon CloudWatch Metric Stream. -
El filtrado de etiquetas configurado en el cuadro de integración de AWS también se aplica a flujos de métricas de CloudWatch.
+- **Metadatos de métricas**: Datadog continúa utilizando el sondeo de API para recopilar etiquetas personalizadas y otros metadatos para sus métricas transmitidas. Para asegurarse de seguir recibiendo estas métricas, no cambie la configuración en la integración de AWS. -### Transmisión de métricas versus sondeo de API {#streaming-vs-polling} +#### Cambio del sondeo de API a transmisión de métricas {#switching-from-api-polling-to-metric-streams} +Si ya recibe métricas para un espacio de nombres de CloudWatch determinado a través del método de sondeo de API, Datadog lo detecta automáticamente y deja de sondear métricas para ese espacio de nombres una vez que comienza a transmitirlas. Deje sin cambios sus ajustes de configuración en la página de integración de AWS; ya que Datadog continúa utilizando el sondeo de API para recopilar etiquetas personalizadas y otros metadatos para sus métricas transmitidas. -A continuación se indican las principales diferencias entre el uso de CloudWatch Metric Streams y el sondeo de API. +#### Volver a cambiar de transmisión de métricas a sondeo de API {#switching-back-from-metric-streams-to-api-polling} -- **Métricas que informan con un retraso de más de dos horas**: el sondeo de API continúa recopilando métricas como `aws.s3.bucket_size_bytes` y `aws.billing.estimated_charges` después de que se habilita la transmisión de métricas, ya que estas no se pueden enviar a través de CloudWatch Metric Stream. +Si más adelante decide que no desea transmitir métricas para una cuenta y región de AWS determinadas, o incluso solo para un espacio de nombres específico, Datadog comienza automáticamente a recopilar esas métricas utilizando el sondeo de API nuevamente según la configuración en la página de integración de AWS. Si desea dejar de transmitir todas las métricas para una cuenta y región de AWS, siga las instrucciones en la sección [Deshabilitar la transmisión de métricas](#disable-metric-streaming) de este documento. -- **Metadatos de métricas**: Datadog sigue utilizando el sondeo de la API para recopilar etiquetas (tags) personalizadas y otros metadatos de tus métricas transmitidas. Para asegurarte de que sigues recibiendo estas métricas, no cambies la configuración en la integración AWS. +#### Evitar métricas duplicadas durante la migración {#avoiding-duplicate-metrics-during-migration} -#### Cambio del sondeo de API a los flujos de métricas -Si ya recibes métricas para un espacio de nombres de CloudWatch determinado a través del método de sondeo de API, Datadog lo detecta automáticamente y deja de sondear las métricas para ese espacio de nombres una vez que comienzas a transmitirlas. Deja la configuración en la página de integración de AWS sin cambios, ya que Datadog continúa usando el sondeo de API para recopilar etiquetas personalizadas y otros metadatos para las métricas transmitidas. +Al realizar la transición del sondeo de API a Metric Streams, hay un periodo de superposición donde ambos métodos de recopilación pueden enviar datos para las mismas métricas. Esto puede causar que los valores de las métricas aparezcan duplicados en Datadog. -#### Cambio de los flujos de métricas al sondeo de API +Para minimizar la duplicación: +1. Habilite Metric Streams para los espacios de nombres y regiones deseados. +2. Espere a que Datadog detecte la transmisión de métricas y detenga el sondeo para esos espacios de nombres. Esta detección puede tardar hasta cinco minutos, pero en la práctica el periodo de superposición puede durar más dependiendo del tiempo de los rastreadores de sondeo activos. +3. Verifique que la transición se haya completado revisando la pestaña **Recopilación de métricas** en la [página de integración de AWS][5] para las regiones en las que la transmisión de métricas esté activada. +4. No modifique su configuración de integración de AWS existente durante la transición. Datadog continúa utilizando el sondeo de API para recopilar etiquetas personalizadas y metadatos para las métricas transmitidas. -Si más adelante decides que no deseas transmitir métricas para una cuenta y una región de AWS determinadas, o incluso solo para un espacio de nombres específico, Datadog comienza automáticamente a recopilar esas métricas mediante el sondeo de API nuevamente según los ajustes de configuración de la página de integración de AWS. Si deseas dejar de transmitir todas las métricas para una cuenta y una región de AWS, sigue las instrucciones de la sección [Deshabilitar la transmisión de métricas](#disable-metric-streaming) de este documento. +
+Algunas métricas no se pueden enviar a través de CloudWatch Metric Streams, incluyendo aws.s3.bucket_size_bytes y aws.billing.estimated_charges. Datadog continúa recopilándolas mediante sondeo de API independientemente de su configuración de Metric Streams. +
-### Facturación +### Facturación {#billing} -Datadog no cobra ningún cargo adicional por transmitir métricas. +No hay cargo adicional de Datadog por transmitir métricas. -AWS factura en función del número de actualizaciones de métricas en CloudWatch Metric Streams y del volumen de datos enviados a Amazon Data Firehose. Por lo tanto, existe la posibilidad de que aumente el coste de CloudWatch para el subconjunto de datos que estás transmitiendo. métricas que esté transmitiendo. Por esta razón, Datadog recomienda el uso de flujos de métricas, para métricas, servicios, regiones y cuentas de AWS en los que más necesites una latencia más baja, y el sondeo, para los demás. Para obtener más información, consulta la [facturación de Amazon CloudWatch][2]. +AWS cobra según la cantidad de actualizaciones de métricas en CloudWatch Metric Streams y el volumen de datos enviado a Amazon Data Firehose. Como tal, existe la posibilidad de ver un aumento en el costo de CloudWatch para el subconjunto de métricas que está transmitiendo. Por esta razón, Datadog recomienda utilizar la transmisión de métricas para las métricas, servicios, regiones y cuentas de AWS donde más necesite la latencia más baja, y sondeo para los demás. Para obtener más información, consulte [Amazon CloudWatch pricing][2]. -Las métricas de EC2 o Lambda en la transmisión podrían aumentar la cantidad de hosts e invocaciones de Lambda facturables (si esos hosts y funciones aún no se monitorizan con la integración de AWS o el Datadog Agent en el caso de EC2). +Las métricas de EC2 o Lambda en la transmisión de métricas podrían aumentar el número de hosts facturables e invocaciones de Lambda (si esos hosts y funciones aún no se supervisan con la integración de AWS o el Datadog Agent en el caso de EC2). -**Nota**: Puedes crear filtros en CloudWatch para transmitir sólo las métricas especificadas. Para obtener más información, consulta la [Guía del usuario de Amazon CloudWatch][7]. +**Nota**: Puede crear filtros en CloudWatch para transmitir solo las métricas especificadas. Consulte la [guía del usuario de Amazon CloudWatch][7] para obtener más información. -## Instalación +## Configuración {#setup} -### Antes de empezar +### Antes de comenzar {#before-you-begin} -1. Lea atentamente la sección [Transmisión de métricas versus sondeo de la API](#streaming-vs-polling) para comprender las diferencias antes de activar la transmisión de métricas. +1. Lea atentamente la sección [Diferencias entre la transmisión de métricas y el sondeo ed API](#streaming-vs-polling) para comprender las diferencias antes de habilitar la transmisión de métricas. -2. Si aún no lo has hecho, conecta tu cuenta de AWS a Datadog. Para obtener más información, consulta las [Instrucciones de configuración de CloudFormation][3]. +2. Si aún no lo ha hecho, conecte su cuenta de AWS a Datadog. Para obtener más información, consulte las [instrucciones de configuración de CloudFormation][3]. -### Instalación +### Instalación {#installation} {{< tabs >}} {{% tab "CloudFormation" %}} -Datadog recomienda utilizar CloudFormation porque es automático y más sencillo si se utilizan varias regiones de AWS. +Datadog recomienda usar CloudFormation porque es automático y más sencillo si utiliza varias regiones de AWS. -**Nota**: Actualmente, la transmisión de métricas a Datadog solo admite el formato de salida OpenTelemetry v0.7. +**Nota**: La transmisión de métricas solo admite el formato de salida OpenTelemetry. La versión más reciente es la v1.0; la v0.7 es compatible, pero puede provocar la pérdida de métricas. -1. En tu sitio de Datadog, ve a la pestaña **Configuration** de la [página de integración de AWS][1]. -2. Haz clic en la cuenta de AWS para configurar la transmisión de métricas. -3. En **Metric Collection**, haz clic en **Automatically Using CloudFormation** en **CloudWatch Metric Streams** para iniciar un stack tecnológico en la consola de AWS. +1. En su sitio de Datadog, vaya a la pestaña **Configuration** de la [página de integración de AWS][1]. +2. Haga clic en la cuenta de AWS para configurar transmisión de métricas. +3. En **Metric Collection**, haga clic en **Automatically Using CloudFormation** bajo **CloudWatch Metric Streams** para iniciar una pila en la consola de AWS. {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric-stream-setup.png" alt="La sección CloudWatch Metric Streams de la pestaña Metric Collection de la página de integración de AWS con el botón Automatically Using CloudFormation resaltado" responsive="true" style="width:60%;" >}} -4. Completa los parámetros necesarios: - - **ApiKey**: añade tu [clave de API de Datadog][2]. - - **DdSite**: selecciona tu [sitio de Datadog][3]. Tu sitio es: {{< region-param key="dd_site" code="true" >}} - - **Regions**: una lista separada por comas de las regiones que deseas configurar para la transmisión de métricas. Para obtener una lista completa de las regiones admitidas, consulta la documentación de AWS sobre el [uso de flujos de métricas][4]. -5. Completa los parámetros opcionales: - - **FilterMethod**: incluye o excluye la lista de espacios de nombres para la transmisión de métricas. - - **First/Second/Third Namespace**: especifica los espacios de nombres que deseas incluir o excluir. Nota: Los valores de los espacios de nombres deben coincidir exactamente con los valores de la columna de espacios de nombres de la documentación de AWS. Por ejemplo, AWS/EC2. -6. Marca la casilla de reconocimiento que dice: "I acknowledge that AWS CloudFormation might create IAM resources with custom names". -7. Haz clic en **Create Stack**. +4. Complete los parámetros requeridos: + - **ApiKey**: Agregue su [clave de Datadog API][2]. + - **DdSite**: Seleccione su [sitio de Datadog][3]. Su sitio es: {{< region-param key="dd_site" code="true" >}} + - **Regiones**: Una lista separada por comas de las regiones que desea configurar para transmisión de métricas. Para obtener una lista completa de las regiones admitidas, consulte la documentación de AWS sobre [Uso de transmisión de métricas][4]. +5. Complete los parámetros opcionales: + - **FilterMethod**: Lista de inclusión o exclusión de espacios de nombres para incluir en la transmisión de métricas. + - **Primer/Segundo/Tercer espacio de nombres**: Especifique los espacios de nombres que desea incluir o excluir. Nota: Los valores de los espacios de nombres deben coincidir exactamente con los valores de la columna de espacios de nombres en la documentación de AWS. Por ejemplo, AWS/EC2. +6. Marque la casilla de confirmación que indica: \"Reconozco que AWS CloudFormation podría crear recursos de IAM con nombres personalizados\". +7. Haga clic en **Create Stack**. -### Resultados +### Resultados {#results} -Una vez que el stack tecnológico se haya creado correctamente, espera cinco minutos para que Datadog reconozca el cambio. Para validar la finalización, ve a la pestaña **Metric Collection** en la [página de integración de AWS][1] de Datadog y verifica que las regiones activadas aparezcan para la cuenta seleccionada. +Una vez que la pila se haya creado correctamente, espere cinco minutos para que Datadog reconozca el cambio. Para validar la finalización, vaya a la pestaña **Recopilación de métricas** en la [página de integración de AWS][1] de Datadog y verifique que las regiones activadas aparezcan para la cuenta seleccionada. -{{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/active-region.png" alt="La sección CloudWatch Metric Streams de la pestaña Metric Collection de la página de integración de AWS con una región activada" responsive="true" style="width:60%;">}} +{{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/active-region.png" alt="La sección CloudWatch Metric Streams de la pestaña Recopilación de métricas de la página de integración de AWS con una región activada" responsive="true" style="width:60%;">}} [1]: https://app.datadoghq.com/integrations/amazon-web-services [2]: https://app.datadoghq.com/organization-settings/api-keys @@ -90,27 +105,27 @@ Una vez que el stack tecnológico se haya creado correctamente, espera cinco min {{% /tab %}} {{% tab "Consola de AWS" %}} -Para configurar flujos de métricas utilizando la consola AWS, crea un flujo de métricas de [CloudWatch][1] para cada región AWS. +Para configurar transmisiones de métricas mediante la consola de AWS, cree un [CloudWatch Metric Stream][1] para cada región de AWS. -**Nota**: Actualmente, la transmisión de métricas a Datadog solo admite el formato de salida OpenTelemetry v0.7. +**Nota**: La transmisión de métricas solo admite el formato de salida OpenTelemetry. La versión más reciente es la v1.0; la v0.7 es compatible, pero puede provocar la pérdida de métricas. -1. Elige **Quick AWS Partner Setup** y selecciona **Datadog** como AWS Partner de destino en el menú desplegable. - {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric-stream-partner-setup.png" alt="Configuración rápida de socios de CloudWatch Metric Stream" responsive="true" style="width:60%;">}} -2. Elige el sitio Datadog al que quieres transmitir flujos de métricas e introduce tu [clave de API Datadog][2]. -3. Elige si quieres transmitir todas las métricas de CloudWatch o sólo determinados espacios de nombres. También tienes la opción de excluir determinadas métricas. Si te encuentras en una cuenta de monitorización, también puedes optar por activar la [transmisión entre cuentas][3]. - {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric-stream-namespace-filter.png" alt="CloudWatch Metric Stream" responsive="true" style="width:60%;">}} -4. En **Añadir estadísticas adicionales**, incluye las métricas de percentiles de AWS que se van a enviar a Datadog. Para obtener una lista de las métricas de percentiles compatibles con Datadog mediante el sondeo, consulta la [plantilla de CloudFormation][4]. +1. Elija la **Configuración rápida de socio de AWS** y seleccione **Datadog** como destino del socio de AWS en el menú desplegable. + {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric-stream-partner-setup.png" alt="Configuración rápida de socio para el flujo de métricas de Cloudwatch" responsive="true" style="width:60%;">}} +2. Elija el sitio de Datadog al que desea transmitir las métricas e ingrese su [clave de Datadog API][2]. +3. Elija si desea transmitir todas las métricas de CloudWatch o solo espacios de nombres específicos. También tiene la opción de excluir métricas específicas. Si se encuentra en una cuenta de monitoreo, también puede optar por habilitar la [transmisión entre cuentas][3]. + {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/metric-stream-namespace-filter.png" alt="Flujo de métricas de Cloudwatch" responsive="true" style="width:60%;">}} +4. En **Agregar estadísticas adicionales**, incluya las métricas de percentiles de AWS para enviar a Datadog. Consulte la [plantilla de CloudFormation][4] para obtener una lista de las métricas de percentiles que Datadog admite mediante sondeo. {{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/percentiles.png" alt="Percentiles" responsive="true" style="width:60%;">}} -5. Asigna un nombre a tu flujo de métricas. -6. Haz clic en **Create metric stream**. +5. Asigne un nombre a su flujo de métricas. +6. Haga clic en **Crear transmisión de métrica**. -### Resultados +### Resultados {#results-1} -Tras comprobar que el recurso Flujos de métricas se ha creado correctamente, espera cinco minutos para que Datadog reconozca el cambio. Para confirmar la finalización, ve a la pestaña **Recopilación de métricas** en la [página de la integración de AWS][5] de Datadog y comprueba que las regiones activadas están habilitadas en **CloudWatch Metric Streams** para la cuenta AWS especificada. +Después de ver que el recurso Metric Stream se ha creado correctamente, espere cinco minutos para que Datadog reconozca el cambio. Para validar la finalización, vaya a la pestaña **Metric Collection** en la [página de integración de AWS][5] de Datadog y verifique que las regiones activadas estén habilitadas en **CloudWatch Metric Streams** para la cuenta de AWS especificada. -{{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/active-region.png" alt="La sección CloudWatch Metric Streams de la pestaña Metric Collection de la página de integración de AWS con una región activada" responsive="true" style="width:60%;">}} +{{< img src="integrations/guide/aws-cloudwatch-metric-streams-with-kinesis-data-firehose/active-region.png" alt="La sección CloudWatch Metric Streams de la pestaña Recopilación de métricas de la página de integración de AWS con una región activada" responsive="true" style="width:60%;">}} -**Nota**: Si ya has activado el sondeo de las API de CloudWatch, la transición hacia la transmisión puede generar un breve período (de hasta cinco minutos) en el que las métricas específicas que estás transmitiendo se contabilizan dos veces en Datadog. Esto se debe a la diferencia de tiempo entre el momento en que los rastreadores de Datadog ejecutan y envían tus métricas de CloudWatch y el momento en que Datadog reconoce que has empezado a transmitirlas y desactiva los rastreadores. +**Nota**: Si ya ha habilitado el sondeo de las API de CloudWatch, la transición al streaming podría causar un breve período (de hasta cinco minutos) en el que las métricas específicas que está transmitiendo se contabilicen por duplicado en Datadog. Esto se debe a la diferencia de tiempo entre el momento en que los rastreadores de Datadog se ejecutan y envían sus métricas de CloudWatch, y el momento en que Datadog reconoce que usted ha comenzado a transmitir esas métricas y desactiva los rastreadores. [1]: https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#metric-streams:streams/create [2]: https://app.datadoghq.com/organization-settings/api-keys @@ -120,33 +135,79 @@ Tras comprobar que el recurso Flujos de métricas se ha creado correctamente, es {{% /tab %}} {{< /tabs >}} -### Transmisión de métricas entre cuentas -Utiliza la transmisión de métricas entre cuentas para incluir las métricas en un único flujo de métricas a través de varias cuentas AWS dentro de una región AWS. Esto ayuda a reducir el número de flujos necesarios para recopilar métricas para un destino común. Para ello, [conecta tus cuentas de origen][4] con tu cuenta de monitorización y activa la transmisión entre cuentas a Datadog en tu cuenta de monitorización AWS. +### Transmisión de métricas entre cuentas {#cross-account-metric-streaming} +Utilice la transmisión de métricas entre cuentas para incluir métricas en una única Metric Stream que abarque varias cuentas de AWS dentro de una región de AWS. Esto ayuda a reducir la cantidad de transmisiones de métricas necesarias para recopilar métricas para un destino común. Para hacer esto, [conecte sus cuentas de fuente][4] con su cuenta de monitoreo y habilite la transmisión entre cuentas a Datadog en su cuenta de monitoreo de AWS. -Tu cuenta de monitorización debe tener los siguientes permisos para que esta característica funcione correctamente: +Su cuenta de monitoreo necesita tener los siguientes permisos para que esta función funcione correctamente: * oam:ListSinks * oam:ListAttachedLinks -**Nota:** Para recopilar etiquetas personalizadas y otros metadatos para tus métricas transmitidas, integra tus cuentas de origen con Datadog. +**Nota:** Para recopilar etiquetas personalizadas y otros metadatos para sus métricas transmitidas, integre sus cuentas de fuente con Datadog. + +### Deshabilitar la transmisión de métricas{#disable-metric-streaming} + +Para deshabilitar la transmisión de métricas por completo para una cuenta y región de AWS determinadas, debe eliminar el AWS Metric Stream y sus recursos relacionados. Para evitar la pérdida de métricas en Datadog, es importante seguir estos pasos de eliminación cuidadosamente: + +Si configuró la transmisión con [CloudFormation](?tab=cloudformation#installation): +1. Elimine la pila que se creó durante la configuración. + +Si configuró la transmisión a través de la [Consola de AWS](?tab=awsconsole#installation): +1. Elimine el CloudWatch Metric Stream vinculado a su transmisión de entrega. +2. Elimine todos los recursos que se crearon al configurar el flujo, incluidos los roles de IAM de S3 y Firehose que están asociados con el flujo. + +Una vez eliminados los recursos, espere cinco minutos para que Datadog reconozca el cambio. Para validar la finalización, vaya a la pestaña **Recopilación de métricas** en la [página de integración de AWS][5] de Datadog y verifique que las regiones deshabilitadas no se muestren en **Transmisiones de métricas de CloudWatch** para la cuenta de AWS especificada. + +### Hacer un seguimiento del estado de la transmisión {#monitor-stream-health} + +Datadog envía la métrica `datadog.aws_metric_streams.data_received` cuando recibe datos de una transmisión de métricas de CloudWatch. Utilice esta métrica para confirmar que AWS está enviando métricas y que Datadog las está recibiendo. + +`datadog.aws_metric_streams.data_received` +: **Tipo**: Gauge
+Informa un valor de `1` cuando Datadog recibe datos de un CloudWatch Metric Stream, y no informa cuando Datadog no recibe datos. Etiquetado con `stream_arn`, `stream_name`, `aws_account` y `region`. La frecuencia con la que informa la métrica depende de su volumen de datos y de la configuración de almacenamiento en búfer de su flujo de entrega de Firehose. + +Para un flujo entre cuentas, el flujo de métricas y el flujo de entrega de Firehose se encuentran en la cuenta de monitoreo. La etiqueta `aws_account` identifica la cuenta de monitoreo, no las cuentas fuente de las que provienen las métricas. + +Para verificar si un stream está entregando datos, consulte esta métrica en el [Metrics Explorer][8] y agrúpela por `stream_name` o `stream_arn`. + +Debido a que la métrica no informa cuando un flujo deja de entregar datos, haga un seguimiento para detectar la transición de informar a no tener datos. Cree un [monitor de métricas][9] en `datadog.aws_metric_streams.data_received`, agrúpelo por `stream_arn` y habilite las notificaciones de datos faltantes. Para conocer los pasos de configuración, consulte [Configurar una alerta para cuando una etiqueta específica deja de informar][10]. + +## Solución de problemas {#troubleshooting} + +Si encuentra problemas al configurar Metric Streams o los recursos asociados, consulte [Solución de problemas de AWS][6]. Si las métricas de CloudWatch dejan de aparecer después de que Metric Streams haya estado funcionando correctamente, el problema puede deberse a errores de destino de Firehose. + +### Errores persistentes de destino de Firehose {#persistent-firehose-destination-errors} + +Si las métricas de CloudWatch dejan de aparecer en Datadog, el flujo de métricas de CloudWatch y el flujo de entrega de Amazon Data Firehose aún pueden mostrar un estado de `running`. Esto puede suceder incluso cuando Firehose ya no entrega registros. -### Deshabilitar la transmisión de métricas +Esto puede suceder cuando Firehose no puede entregar registros al punto de conexión HTTP de Datadog dentro de su [período de reintento][11], ni escribir los registros en su respaldo de S3. Cuando ambas rutas de entrega fallan, es posible que el flujo de entrega no reanude automáticamente la entrega HTTP después de que el punto de conexión vuelva a estar disponible. -Para deshabilitar por completo la transmisión de métricas para una cuenta y una región de AWS determinadas, debes eliminar AWS Metric Stream y sus recursos relacionados. Para evitar la pérdida de métricas en Datadog, es importante seguir con atención estos pasos para la eliminación: +Para diagnosticar y restaurar la entrega: -Si configuras la transmisión con [CloudFormation](?tab=cloudformation#installation): -1. Borra el stack tecnológico que se creó durante la configuración. +1. Localice el flujo de entrega de Firehose asociado con el flujo de métricas de CloudWatch afectado. Ejecute el siguiente comando de AWS CLI para encontrar el `FirehoseArn` en la respuesta: -Si configuras la transmisión a través de la [Consola de AWS](?tab=awsconsole#installation): -1. Borra el CloudWatch Metric Stream vinculado a tu flujo de entrega. -2. Elimina todos los recursos que se crearon al configurar el flujo, incluidos los roles de IAM de S3 y Firehose que están asociados con el flujo. + ```shell + aws cloudwatch get-metric-stream \ + --name \ + --region + ``` -Una vez que se hayan eliminado los recursos, espera cinco minutos para que Datadog reconozca el cambio. Para validar la finalización, ve a la pestaña **Recopilación de métricas** en la [página de la integración de AWS][5] de Datadog y verifica que las regiones deshabilitadas no aparezcan en **CloudWatch Metric Streams** para la cuenta AWS especificada. +2. Revise los [registros de errores de entrega de Firehose][12] en CloudWatch Logs. Si el registro de errores de entrega no está habilitado, habilítelo para que pueda capturar futuros errores de entrega. Los errores relevantes incluyen `HttpEndpoint.DestinationException` (como respuestas HTTP 408) y `S3.AccessDenied`. +3. Inspeccione las [métricas de CloudWatch de Firehose][13] en la consola de CloudWatch (es posible que Datadog no muestre estas métricas mientras la entrega esté interrumpida). Verifique `DeliveryToHttpEndpoint.Success`, `DeliveryToHttpEndpoint.DataFreshness`, `DeliveryToHttpEndpoint.Records` y `IncomingRecords`. +4. Si Firehose recibe registros pero no los entrega, verifique la configuración de respaldo de S3 y el rol de IAM: + - Confirme que Firehose pueda asumir el rol configurado y escribir en el bucket de respaldo. + - Verifique que la política del bucket, el límite de permisos, las políticas de control de servicio (SCP) y la política de claves KMS no denieguen el acceso requerido. +5. Verifique si los registros están llegando a S3 buscando en el bucket de respaldo bajo el prefijo configurado en la configuración de respaldo de S3 de su flujo de entrega de Firehose. Si no se están escribiendo objetos, esto confirma un problema de permisos o configuración con la ruta de respaldo de S3. Si los registros de errores de entrega del paso 2 muestran un error de permisos de S3, corríjalo antes de continuar. +6. Actualice la configuración de destino HTTP de Firehose usando la [API UpdateDestination][14] de Firehose; por ejemplo, cambiando su duración de reintento. Una actualización de configuración como esta puede reiniciar un destino estancado. -## Solucionar problemas +Si la entrega no se recupera, contacte a [Datadog Support][15] y proporcione: + - El ID de la cuenta de AWS y la región + - Los ARN del flujo de métricas de CloudWatch y del flujo de entrega de Firehose + - La hora aproximada en que se detuvo la entrega + - Registros de errores relevantes de Firehose -Para resolver cualquier problema que surja al configurar Metric Streams o los recursos asociados, consulta [Solución de problemas de AWS][6]. +**Nota**: Reiniciar la entrega afecta solo a los registros nuevos y no rellena los registros que fallaron durante la interrupción. Los registros escritos en la copia de seguridad de S3 no se ingieren automáticamente en Datadog. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/integrations/guide/cloud-metric-delay/ @@ -155,4 +216,12 @@ Para resolver cualquier problema que surja al configurar Metric Streams o los re [4]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account-Setup.html [5]: https://app.datadoghq.com/integrations/amazon-web-services [6]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-troubleshoot.html -[7]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html \ No newline at end of file +[7]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html +[8]: https://app.datadoghq.com/metric/explorer +[9]: /es/monitors/types/metric/ +[10]: /es/monitors/guide/set-up-an-alert-for-when-a-specific-tag-stops-reporting/ +[11]: https://docs.aws.amazon.com/firehose/latest/dev/retry.html +[12]: https://docs.aws.amazon.com/firehose/latest/dev/monitoring-with-cloudwatch-logs.html +[13]: https://docs.aws.amazon.com/firehose/latest/dev/monitoring-with-cloudwatch-metrics.html#fh-http-metrics +[14]: https://docs.aws.amazon.com/firehose/latest/APIReference/API_UpdateDestination.html +[15]: /es/help/ \ No newline at end of file diff --git a/hugo/content/es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md b/hugo/content/es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md new file mode 100644 index 00000000000..8431458e1df --- /dev/null +++ b/hugo/content/es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md @@ -0,0 +1,187 @@ +--- +aliases: +- /es/llm_observability/evaluations/custom_llm_as_a_judge_evaluations/prompt_templating/ +description: 'Referencia para la creación de plantillas utilizada en prompts de evaluación + personalizados de LLM-como-juez: variables, operadores de matriz, filtros de tramo + y traza, rutas de sesión y reglas de resolución.' +further_reading: +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations + tag: Documentación + text: Evaluaciones personalizadas de LLM-as-a-judge +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations/session_level_evaluations + tag: Documentación + text: Evaluaciones a nivel de sesión +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations/trace_level_evaluations + tag: Documentación + text: Evaluaciones a nivel de traza +title: Creación de plantillas de prompt +--- +Los prompts personalizados de LLM-como-juez inyectan datos de sesión, traza o tramo en el mensaje {{< ui >}}User{{< /ui >}} envolviendo una ruta de campo en `{{ ... }}`. El System Prompt contiene las instrucciones estáticas para el juez LLM y no resuelve marcadores de posición. La misma sintaxis funciona tanto en el panel de prueba como en el momento de la evaluación. Las rutas disponibles dependen del contexto de la evaluación: sesión, traza o tramo. + +## De un vistazo {#at-a-glance} + +| Patrón | Descripción | +|---|---| +| `{{trazas}}` | Every trace in the session as JSON | +| `{{trazas[0].tramos[0].meta.input.value}}` | First span of the first trace | +| `{{trazas[*].tramos[*].name}}` | Fan-out across traces and spans | +| `{{trazas[*].tramos[meta.span.kind:llm].meta.output.value}}` | Filter spans by attribute across a session | +| `{{tramos}}` | Every span in the trace as JSON (trace scope) | +| `{{tramos[0].name}}` | Pick one span from a trace (trace scope) | +| `{{tramos[name:my-span].meta.input.value}}` | Filter spans by attribute (trace scope) | +| `{{name}}` | Direct field (span scope) | +| `{{meta.input.value}}` | Dot notation for nested fields (span scope) | +| `{{meta.input.messages[0].content}}` | Array index (0-based) (span scope) | +| `{{meta.input.messages[1,3].content}}` | Inclusive array range (span scope) | +| `{{meta.input.messages[*].content}}` | Array wildcard (fan-out) (span scope) | +| `{{meta.input.messages.content}}` | Implicit fan-out (same as `[*]`) (span scope) | +| `{{tramo_input}}`, `{{tramo_output}}` | Aliases for span input and output fields (span scope) | +| `{{*}}` | Carga útil completa como JSON (contexto de sesión, traza o tramo) | + +El menú desplegable de autocompletado se abre después de escribir `{{` y enumera los campos disponibles en la muestra seleccionada. + +## Sintaxis de contexto de sesión {#session-scope-syntax} + +Las evaluaciones de contexto de sesión exponen cada traza en la [sesión de usuario][1] bajo la matriz `traces`. Cada traza incluye su propia matriz `spans`, por lo que puede leer a través de trazas y tramos en un solo prompt. Use `{{trazas[...]}}` paths (and nested `{{trazas[...].tramos[...]}}` paths) to build session-level judges. The `{{tramo_input}}` and `Los alias de {{tramo_output}}` no están disponibles en el contexto de sesión. + +Las evaluaciones a nivel de sesión requieren que los tramos estén etiquetados con un `session_id`. Consulte [Seguimiento de sesiones de usuario][1] para instrumentar su aplicación, y [Evaluaciones a nivel de sesión][2] para obtener información sobre configuración, ejemplos de prompts y orientación sobre cuándo elegir el contexto de sesión. + +### Referenciar toda la sesión {#reference-the-whole-session} + +``` +{{traces}} # JSON of every trace in the session (each trace includes its spans) +{{*}} # Entire session payload as JSON, including top-level metadata +``` + +### Elegir una traza o un tramo por índice {#pick-a-trace-or-span-by-index} + +``` +{{traces[0].spans[0].meta.input.value}} # First span of the first trace +{{traces[*].spans[*].name}} # Newline-joined names of every span in the session +{{traces[1].spans}} # JSON of every span in the second trace +``` + +### Filtrar tramos por atributo {#filter-spans-by-attribute} + +`[field.path:value]` en `spans` mantiene solo los tramos cuyo campo en `field.path` es igual a `value`. Combine con rutas más profundas para extraer entradas o salidas a través de la sesión. Los filtros vuelven a una cadena vacía cuando nada coincide. + +``` +{{traces[0].spans[name:my-span].meta.input.value}} +{{traces[*].spans[meta.span.kind:llm].meta.output.value}} +{{traces[*].spans[meta.span.kind:tool].meta.input.parameters}} +``` + +### Fan-out a través de trazas {#fan-out-across-traces} + +Use `[*]` en `traces` o `spans` para hacer fan-out: los valores de cada elemento coincidente se unen con saltos de línea (`\n`), o se serializan como JSON cuando los valores resueltos son objetos. + +``` +{{traces[*].spans[meta.span.kind:llm].meta.input.messages[*].content}} +{{traces[*].spans[meta.span.kind:llm].meta.output.messages[*].content}} +``` + +## Sintaxis de contexto de traza {#trace-scope-syntax} + +Las evaluaciones de contexto de traza exponen cada tramo en la traza bajo la matriz `spans`. Use `{{tramos...}}` paths to read across spans. The `{{tramo_input}}` and `Los alias `{{tramo_output}}` no están disponibles en el contexto de traza. Consulte [Evaluaciones a nivel de traza][3] para obtener información sobre configuración, ejemplos de prompts y orientación sobre cuándo elegir el contexto de traza. + +### Referenciar toda la traza {#reference-the-whole-trace} + +``` +{{spans}} # JSON of every span in the trace +{{*}} # Entire trace payload as JSON, including top-level metadata +``` + +### Elegir un tramo por índice {#pick-a-span-by-index} + +``` +{{spans[0].meta.input.value}} # First span +{{spans[*].name}} # Newline-joined names of every span +``` + +### Filtrar tramos por atributo {#filter-spans-by-attribute-1} + +`[field.path:value]` mantiene solo los tramos cuyo campo en `field.path` es igual a `value`. Combine con rutas más profundas para extraer las entradas o salidas de los tramos coincidentes. El filtro vuelve a una cadena vacía si ningún tramo coincide. + +``` +{{spans[name:my-span].meta.input.value}} +{{spans[meta.span.kind:llm].meta.output.value}} +{{spans[meta.span.kind:tool].meta.input.parameters}} +``` + +## Sintaxis de contexto de tramo {#span-scope-syntax} + +Las evaluaciones de contexto de tramo exponen un solo tramo por evaluación. Haga referencia a los campos por su ruta JSON en el tramo. + +### Alias integrados {#built-in-aliases} + +| Alias | Se resuelve en | +|---|---| +| `{{tramo_input}}` | `meta.input.messages[*].content` for LLM spans, `meta.input.value` otherwise | +| `{{tramo_output}}` | `meta.output.messages[*].content` for LLM spans, `meta.output.value` de lo contrario | + +Los alias se adaptan al tipo de tramo que se está evaluando, por lo que no tiene que ramificar si el tramo es una llamada a LLM o un paso de agente. + +### Rutas de campo directas {#direct-field-paths} + +Haga referencia a cualquier campo de tramo mediante su ruta JSON. + +``` +{{name}} +{{meta.input.value}} +{{meta.output.value}} +{{metrics.input_tokens}} +``` + +### Acceso a arreglos {#array-access} + +Utilice la notación de corchetes para indexar, segmentar o distribuir sobre campos de arreglo. + +``` +{{meta.input.messages[0].content}} # First message only +{{meta.input.messages[*].content}} # All messages, joined with newlines +{{meta.input.messages[0,2].content}} # Inclusive range; out-of-bounds ends are clamped +{{meta.input.messages.content}} # Implicit fan-out, equivalent to [*] +``` + +## Reglas de resolución {#resolution-rules} + +| Resultado | Comportamiento | +|---|---| +| Ruta faltante | Se resuelve en una cadena vacía | +| Índice fuera de límites | Se resuelve en una cadena vacía | +| Cadena única | Se inserta tal cual | +| Arreglo de cadenas | Se une con saltos de línea (`\n`) | +| Objeto o arreglo de valores que no son cadenas | Se serializa como JSON compacto | +| Arreglo mixto (cadenas + objetos) | Se serializa como JSON compacto | +| Arreglo vacío único | Se resuelve en una cadena vacía | + +Por ejemplo, dado un tramo donde `meta.input.messages` es: + +```json +[ + { "role": "user", "content": "hello" }, + { "role": "user", "content": "help please" } +] +``` + +| Plantilla | Valor resuelto | +|---|---| +| `{{meta.input.messages[0].content}}` | `hola` | +| `{{meta.input.messages[*].content}}` | `hola`
`ayuda por favor` | +| `{{meta.input.messages}}` | `[{\"role\":\"user\",\"content\":\"hola\"},{\"role\":\"user\",\"content\":\"ayuda por favor\"}]` | + +## Consejos {#tips} + +- Escriba `{{` en el editor de prompts para abrir el menú desplegable de autocompletado. La lista se adapta al contexto (sesión, traza o tramo) y a la muestra seleccionada. +- Elija una muestra en el panel de la derecha ({{< ui >}}Sample Session{{< /ui >}} para el contexto de sesión, {{< ui >}}Spans in Selected Trace{{< /ui >}} para el contexto de traza o {{< ui >}}Filtered Spans{{< /ui >}} para el contexto de tramo), luego haga clic en {{< ui >}}Test Evaluation{{< /ui >}} para previsualizar cómo se resuelve cada marcador de posición con datos reales antes de guardar. +- Utilice el menú de tres puntos en la vista JSON de una muestra y seleccione {{< ui >}}Add variable to message{{< /ui >}} para insertar una ruta de campo en el prompt sin tener que escribirla. +- Pase `{{*}}` cuando desee que el juez LLM vea la carga útil completa; es útil para prompts de formato libre que deciden por sí mismos qué campos son importantes. +- Utilice `{{trazas}}` or targeted `{{trazas[...].tramos[...]}}` paths for session judges when you need cross-turn context; use `{{tramos}}` cuando una sola traza sea suficiente. Consulte [Evaluaciones a nivel de sesión][2] para obtener orientación sobre el contexto y ejemplos de prompts. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/llm_observability/instrument/sdk/#tracking-user-sessions +[2]: /es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/session_level_evaluations +[3]: /es/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/trace_level_evaluations \ No newline at end of file diff --git a/hugo/content/es/llm_observability/guide/agent_monitoring.md b/hugo/content/es/llm_observability/guide/agent_monitoring.md new file mode 100644 index 00000000000..4c17f87727f --- /dev/null +++ b/hugo/content/es/llm_observability/guide/agent_monitoring.md @@ -0,0 +1,42 @@ +--- +aliases: +- /es/llm_observability/agent_monitoring +- /es/llm_observability/monitoring/agent_monitoring/ +description: Haga un seguimiento, solucione problemas y mejore las aplicaciones agénticas + creadas con OpenAI Agents SDK, LangGraph o CrewAI usando Agent Observability. +further_reading: +- link: https://learn.datadoghq.com/courses/llm-obs-investigations + tag: Centro de aprendizaje + text: Investigue con LLM Observability +- link: https://www.datadoghq.com/blog/openai-agents-llm-observability/ + tag: Blog + text: Haga un seguimiento de sus agentes de OpenAI con Datadog LLM Observability +- link: https://www.datadoghq.com/blog/monitor-ai-agents/ + tag: Blog + text: Haga un seguimiento, solucione problemas y mejore los agentes de IA con Datadog +- link: https://www.datadoghq.com/blog/llm-observability-bedrock-agents/ + tag: Blog + text: Haga un seguimiento de los agentes creados en Amazon Bedrock con Datadog LLM + Observability +- link: https://www.datadoghq.com/blog/langgraph-agent-monitoring/ + tag: Blog + text: 'Seguimiento de agentes de LangGraph con Datadog: una guía práctica' +title: Seguimiento de agentes +--- +## Descripción general {#overview} + +Agent Observability le permite hacer un seguimiento, solucionar problemas y mejorar sus aplicaciones agénticas. Con el SDK de Agent Observability para Python, puede hacer un seguimiento del estado y la calidad de sus sistemas de agente único o multiagente creados en [OpenAI Agents SDK][1], [LangGraph][2] o [CrewAI][3]. + +Para sus aplicaciones agénticas, Agent Observability le permite: + +- Haga un seguimiento de la tasa de errores, la acumulación de latencia o el costo +- Visualice las decisiones de los agentes, como las herramientas utilizadas o el agente al que se le transfirió una tarea +- Rastree y solucione problemas de las solicitudes de extremo a extremo de las ejecuciones de los agentes + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/llm_observability/setup/auto_instrumentation?tab=python#openai-agents +[2]: /es/llm_observability/setup/auto_instrumentation?tab=python#langgraph +[3]: /es/llm_observability/setup/auto_instrumentation?tab=python#crew-ai \ No newline at end of file diff --git a/hugo/content/es/llm_observability/guide/monitor_proxy_services.md b/hugo/content/es/llm_observability/guide/monitor_proxy_services.md new file mode 100644 index 00000000000..d7efde6d283 --- /dev/null +++ b/hugo/content/es/llm_observability/guide/monitor_proxy_services.md @@ -0,0 +1,189 @@ +--- +aliases: +- /es/llm_observability/trace_proxy_services/ +description: Aprenda a usar Agent Observability para rastrear llamadas de LLM a través + de servicios de proxy o puerta de enlace como parte de una traza completa de extremo + a extremo. +title: Rastreo de servicios de proxy +--- +## Descripción general {#overview} + +Al igual que las aplicaciones tradicionales, una aplicación de LLM puede representar múltiples microservicios. Con Agent Observability, si uno de estos servicios es un proxy o puerta de enlace de LLM, puede rastrear las llamadas de LLM dentro de una traza completa de extremo a extremo, capturando la ruta completa de la solicitud a través de los servicios. + +## Habilitar Agent Observability para un servicio de proxy o puerta de enlace {#enabling-agent-observability-for-a-proxy-or-gateway-service} + +Para habilitar Agent Observability para un servicio de proxy o puerta de enlace utilizado por múltiples aplicaciones de ML, puede configurarlo sin especificar un nombre de aplicación de ML. En su lugar, establezca el nombre del servicio. Esto le permite [filtrar tramos específicos para ese servicio de proxy o puerta de enlace dentro de Agent Observability](#observing-llm-gateway-and-proxy-services). + +{{< tabs >}} +{{% tab "Python" %}} + +```python +# proxy.py +from ddtrace.llmobs import LLMObs + +LLMObs.enable(service="chat-proxy") + +# proxy-specific logic, including guardrails, sensitive data scans, and the LLM call +``` + +{{% /tab %}} +{{% tab "Node.js" %}} + +```javascript +// proxy.js +const tracer = require('dd-trace').init({ + llmobs: true, + service: "chat-proxy" +}); +const llmobs = tracer.llmobs; + +// proxy-specific logic, including guardrails, sensitive data scans, and the LLM call +``` + +{{% /tab %}} +{{< /tabs >}} + + +Si tiene un servicio que orquesta aplicaciones de ML que envían solicitudes a un proxy o puerta de enlace de LLM, habilite Agent Observability con el nombre de la aplicación de ML: + +{{< tabs >}} +{{% tab "Python" %}} + +```python +# application.py +from ddtrace.llmobs import LLMObs +LLMObs.enable(ml_app="my-ml-app") + +import requests + +if __name__ == "__main__": + with LLMObs.workflow(name="run-chat"): + # other application-specific logic - (such as RAG steps and parsing) + + response = requests.post("http://localhost:8080/chat", json={ + # data to pass to the proxy service + }) + + + # other application-specific logic handling the response +``` + +{{% /tab %}} +{{% tab "Node.js" %}} + +```javascript +// application.js +const tracer = require('dd-trace').init({ + llmobs: { + mlApp: 'my-ml-app' + } +}); +const llmobs = tracer.llmobs; + +const axios = require('axios'); + +async function main () { + llmobs.trace({ name: 'run-chat', kind: 'workflow' }, async () => { + // other application-specific logic - (such as RAG steps and parsing) + + // wrap the proxy call in a task span + const response = await axios.post('http://localhost:8080/chat', { + // data to pass to the proxy service + }); + + // other application-specific logic handling the response + }); +} + +main(); +``` + +{{% /tab %}} +{{< /tabs >}} + +Cuando la aplicación de LLM realiza una solicitud al servicio de proxy o puerta de enlace, el SDK de Agent Observability propaga automáticamente el nombre de la aplicación de ML desde la aplicación de LLM original. El nombre de la aplicación de ML propagado tiene prioridad sobre el nombre de la aplicación de ML especificado en el servicio de proxy o puerta de enlace. + +## Observación de servicios de puerta de enlace y proxy de LLM {#observing-llm-gateway-and-proxy-services} + +### Todas las solicitudes al servicio de proxy o puerta de enlace {#all-requests-to-the-proxy-or-gateway-service} + +Para visualizar todas las solicitudes al servicio de proxy como tramos de nivel superior, envuelva el punto de entrada del punto de conexión del servicio de proxy en un tramo `workflow`: + +{{< tabs >}} +{{% tab "Python" %}} + +```python +# proxy.py +from ddtrace.llmobs import LLMObs + +LLMObs.enable(service="chat-proxy") + +@app.route('/chat') +def chat(): + with LLMObs.workflow(name="chat-proxy-entrypoint"): + # proxy-specific logic, including guardrails, sensitive data scans, and the LLM call +``` + +{{% /tab %}} +{{% tab "Node.js" %}} + +```javascript +// proxy.js +const tracer = require('dd-trace').init({ + llmobs: true, + service: "chat-proxy" +}); +const llmobs = tracer.llmobs; + +app.post('/chat', async (req, res) => { + await llmobs.trace({ name: 'chat-proxy-entrypoint', kind: 'workflow' }, async () => { + // proxy-specific logic, including guardrails, sensitive data scans, and the LLM call + res.send("Hello, world!"); + }); +}); +``` + +{{% /tab %}} +{{< /tabs >}} + +Todas las solicitudes al servicio de proxy se pueden visualizar entonces como tramos de nivel superior dentro de la vista de traza de LLM: + +1. En la página de [traza de LLM][1], seleccione {{< ui >}}All Applications{{< /ui >}} en el menú desplegable superior izquierdo. +2. Cambie a la vista {{< ui >}}All Spans{{< /ui >}} en el menú desplegable superior derecho. +3. Filtre la lista por la etiqueta `service` y el nombre del flujo de trabajo. + +{{< img src="llm_observability/all-spans-with-service-and-span-name.png" alt="Visualice todos los tramos de todas las aplicaciones de ML con las etiquetas de nombre de servicio y flujo de trabajo" style="width:100%;" >}} + +También puede filtrar el flujo de trabajo {{< ui >}}Span Name{{< /ui >}} usando la faceta en el lado izquierdo de la vista de traza: + +{{< img src="llm_observability/span-name-facet-for-proxy-service-monitoring.png" alt="Seleccione el nombre del tramo del flujo de trabajo de la faceta en el lado izquierdo de la vista de traza" style="width:50%;" >}} + +### Todas las llamadas de LLM realizadas dentro del servicio de proxy o puerta de enlace {#all-llm-calls-made-within-the-proxy-or-gateway-service} + +Para hacer un seguimiento solo de las llamadas de LLM realizadas dentro de un servicio de proxy o puerta de enlace, filtre por los tramos `llm` en la vista de traza: + +{{< img src="llm_observability/all-spans-with-service-and-span-kind.png" alt="Visualice todos los tramos de todas las aplicaciones de ML con las etiquetas de servicio y el tipo de tramo de LLM" style="width:100%;" >}} + +También puede filtrar la faceta {{< ui >}}Span Kind{{< /ui >}} en el lado izquierdo de la vista de traza: + +{{< img src="llm_observability/span-kind-facet-for-proxy-service-monitoring.png" alt="Seleccione la faceta de tipo de tramo de LLM del lado izquierdo de la vista de traza" style="width:50%;" >}} + +### Filtrado por una aplicación de ML específica y observación de patrones y tendencias {#filtering-by-a-specific-ml-application-and-observing-patterns-and-trends} + +Puede aplicar ambos procesos de filtrado ([llamadas de nivel superior al servicio de proxy](#all-requests-to-the-proxy-or-gateway-service) y [llamadas de LLM realizadas dentro del servicio de proxy o puerta de enlace](#all-llm-calls-made-within-the-proxy-or-gateway-service)) a una aplicación de ML específica para visualizar su interacción con el servicio de proxy o puerta de enlace. + +1. En el menú desplegable superior izquierdo, seleccione la aplicación de ML de interés. +2. Para ver todas las trazas de la aplicación de ML, cambie de la vista {{< ui >}}All Spans{{< /ui >}} a la vista {{< ui >}}Traces{{< /ui >}} en el menú desplegable superior derecho. +3. Para ver series temporales de trazas para la aplicación de ML, vuelva al filtro {{< ui >}}All Spans{{< /ui >}} en el menú desplegable superior derecho y, junto a "Visualizar como", seleccione {{< ui >}}Timeseries{{< /ui >}}. + +{{< img src="llm_observability/timeseries-view-for-proxy-services.png" alt="Cambie de una vista de lista a una vista de series temporales en la vista de trazas mientras mantiene el filtro de todos los tramos" style="width:100%;" >}} + +## Observación del uso de extremo a extremo de aplicaciones de LLM que realizan llamadas a un servicio de proxy o puerta de enlace {#observing-end-to-end-usage-of-llm-applications-making-calls-to-a-proxy-or-gateway-service} + +Para observar el uso completo de extremo a extremo de una aplicación de LLM que realiza llamadas a un servicio de proxy o puerta de enlace, puede filtrar las trazas con ese nombre de aplicación de ML: + +1. En la vista de traza de LLM, seleccione el nombre de la aplicación de ML de interés en el menú desplegable superior izquierdo. +2. Cambie a la vista {{< ui >}}Traces{{< /ui >}} en el menú desplegable superior derecho. + + +[1]: https://app.datadoghq.com/llm/traces \ No newline at end of file diff --git a/hugo/content/es/llm_observability/improve/datasets.md b/hugo/content/es/llm_observability/improve/datasets.md new file mode 100644 index 00000000000..968e548a2c5 --- /dev/null +++ b/hugo/content/es/llm_observability/improve/datasets.md @@ -0,0 +1,258 @@ +--- +aliases: +- /es/llm_observability/experiments/datasets/ +description: Uso de conjuntos de datos en Agent Observability Experiments, incluyendo + cómo crear, recuperar y administrar conjuntos de datos, así como información sobre + el control de versiones. +further_reading: +- link: /llm_observability/configure/automation_rules + tag: Documentación + text: Enruta trazas a conjuntos de datos automáticamente con reglas de automatización. +title: Conjuntos de datos +--- +En los experimentos de Agent Observability, un _conjunto de datos_ es una colección de _entradas_, _salidas esperadas_ y _metadatos_ que representan escenarios en los que desea probar su agente. Cada conjunto de datos está asociado con un _proyecto_. + +Cada registro en un conjunto de datos contiene: +- **entrada** (obligatorio): Representa toda la información a la que el agente puede acceder en una tarea. +- **salida esperada** (opcional): También llamada _ground truth_, representa la respuesta ideal que el agente debería generar. Puede utilizar la _salida esperada_ para almacenar la salida real de la aplicación, así como cualquier resultado intermedio que desee evaluar. +- **metadatos** (opcional): Contiene cualquier información útil para categorizar el registro y utilizarla para análisis posteriores. Por ejemplo: temas, etiquetas, descripciones, notas. +- **id** (opcional): Un identificador definido por el usuario para el registro. Debe tener 128 caracteres o menos y contener solo letras, números, `_`, `-` o `.`. Si no se proporciona, el SDK genera uno automáticamente. + +Los conjuntos de datos permiten realizar pruebas sistemáticas y detectar regresiones al proporcionar escenarios de evaluación consistentes en todos los experimentos. + +### Creación de un conjunto de datos {#creating-a-dataset} + +Puede crear conjuntos de datos a partir de datos de producción, archivos CSV o construirlos manualmente mediante programación. + +{{< tabs >}} + +{{% tab "A partir de archivos CSV" %}} + +Para crear un conjunto de datos a partir de un archivo CSV, utilice `LLMObs.create_dataset_from_csv()`: + +```python +# Create dataset from CSV +dataset = LLMObs.create_dataset_from_csv( + csv_path="questions.csv", + dataset_name="capitals-of-the-world", + project_name="capitals-project", # Optional: defaults to the project name from LLMObs.enable + description="Geography quiz dataset", # Optional: Dataset description + input_data_columns=["question", "category"], # Columns to use as input + expected_output_columns=["answer"], # Optional: Columns to use as expected output + metadata_columns=["difficulty"], # Optional: Additional columns as metadata + id_column="record_id", # Optional: Column to use as record IDs + csv_delimiter="," # Optional: Defaults to comma +) + +# Example "questions.csv": +# record_id,question,category,answer,difficulty +# japan-capital,What is the capital of Japan?,geography,Tokyo,medium +# brazil-capital,What is the capital of Brazil?,geography,Brasília,medium + +``` + +**Notas**: +- Los archivos CSV deben tener una fila de encabezado +- El tamaño máximo del campo es de 10 MB +- Todas las columnas no especificadas en `input_data_columns`, `expected_output_columns` o `id_column` se tratan automáticamente como metadatos +- El conjunto de datos se envía automáticamente a Datadog después de su creación + +{{% /tab %}} + +{{% tab "Creación manual" %}} + +Para crear manualmente un conjunto de datos, use `LLMObs.create_dataset()`: + +```python +from ddtrace.llmobs import LLMObs + +dataset = LLMObs.create_dataset( + dataset_name="capitals-of-the-world", + project_name="capitals-project", # optional, defaults to project_name used in LLMObs.enable + description="Questions about world capitals", + records=[ + { + "id": "china-capital", # optional, user-defined record ID + "input_data": {"question": "What is the capital of China?"}, # required, JSON or string + "expected_output": "Beijing", # optional, JSON or string + "metadata": {"difficulty": "easy"} # optional, JSON + }, + { + "input_data": {"question": "Which city serves as the capital of South Africa?"}, + "expected_output": "Pretoria", + "metadata": {"difficulty": "medium"} + } + ] +) +# View dataset in Datadog UI +print(f"View dataset: {dataset.url}") +``` +{{% /tab %}} + +{{% tab "Desde trazas de producción" %}} +Agregue trazas de producción a los conjuntos de datos manualmente a través de la interfaz de usuario o automáticamente con automatizaciones. + +**Selección manual (UI)**: +1. Navegue a [{{< ui >}}AI Observability{{< /ui >}} > {{< ui >}}Traces{{< /ui >}}][2]. También puede agregar una nueva Automation desde [Settings > Automations][3]. +2. Busque una traza que desee incluir en un conjunto de datos. +3. Haga clic en {{< ui >}}Add to Dataset{{< /ui >}}. +4. Elija un conjunto de datos existente o cree uno. +5. La entrada, la salida y los metadatos de la traza se extraen automáticamente. + +**Enrutamiento automático (Automations)**: + +
Automations se aplican de ahora en adelante: las nuevas trazas que coincidan con su regla se enrutan a los conjuntos de datos a medida que llegan. Las trazas existentes que coincidan con el filtro no se agregan de forma retroactiva.
+ +Automations le permiten enrutar continuamente las trazas de producción a los conjuntos de datos según reglas configurables, manteniendo sus conjuntos de datos actualizados con el comportamiento de producción sin intervención manual. + +Para configurar las actualizaciones automáticas del conjunto de datos: +1. Navegue a [{{< ui >}}AI Observability{{< /ui >}} > {{< ui >}}Traces{{< /ui >}}][2]. +2. Aplique filtros para identificar las trazas que desea enrutar (errores de evaluación, umbrales de latencia, aplicaciones específicas). Consulte [Automation Rules > Supported filter fields][5] para ver lo que está permitido. +3. Haga clic en {{< ui >}}Automate Query{{< /ui >}}. +4. Configure la tasa de muestreo (por ejemplo, el 10% de las trazas coincidentes). +5. Seleccione {{< ui >}}Add to Dataset{{< /ui >}} como la acción. +6. Elija un conjunto de datos existente o cree uno. + +Después de crear una Automation, adminístrela desde [{{< ui >}}AI Observability{{< /ui >}} > {{< ui >}}Settings{{< /ui >}} > {{< ui >}}Automations{{< /ui >}}][3]: +- {{< ui >}}Enable/disable{{< /ui >}}: Controle si se agregan nuevas trazas al conjunto de datos. +- {{< ui >}}Edit{{< /ui >}}: Modifique filtros, tasas de muestreo o conjuntos de datos de destino a medida que cambien sus necesidades. +- {{< ui >}}Delete{{< /ui >}}: Elimine las Automations que ya no necesite. + +**Límites del conjunto de datos:** +- Los conjuntos de datos poblados por Automations tienen un límite de 20,000 registros. +- Estos conjuntos de datos son de solo lectura para evitar la modificación accidental de datos automatizados. +- Para modificar registros, clone el conjunto de datos primero. + +**Ejemplos de casos de uso para Automations:** +- Muestree el 10% de las trazas con evaluaciones fallidas para crear un conjunto de datos de fallas. +- Recopile casos extremos donde la latencia exceda los umbrales. +- Mantenga un conjunto de datos diverso con muestreo estratificado entre segmentos de usuario. +- Capture automáticamente nuevos patrones de falla a medida que surjan en producción. + +[2]: https://app.datadoghq.com/llm/traces +[3]: https://app.datadoghq.com/llm/settings/automations +[5]: /es/llm_observability/configure/automation_rules/#supported-filter-fields +{{% /tab %}} +{{< /tabs >}} + +### Recuperación de un conjunto de datos {#retrieving-a-dataset} + +Para recuperar un conjunto de datos existente de un proyecto desde Datadog: + +```python +dataset = LLMObs.pull_dataset( + dataset_name="capitals-of-the-world", + project_name="capitals-project", # optional, defaults to the project name from LLMObs.enable + version=1 # optional, defaults to the latest version +) + +# Get dataset length +print(len(dataset)) +``` + +#### Exportación de un conjunto de datos a pandas {#exporting-a-dataset-to-pandas} + +La clase Dataset también proporciona el método `as_dataframe()`, que le permite transformar un conjunto de datos como un [pandas DataFrame][1]. + +
Pandas es necesario para esta operación. Para instalar pandas, pip install pandas.
+ +```python +# Convert dataset to pandas DataFrame +df = dataset.as_dataframe() +print(df.head()) + +# DataFrame output with MultiIndex columns: +# input_data expected_output metadata +# question category answer difficulty +# 0 What is the capital of Japan? geography Tokyo medium +# 1 What is the capital of Brazil? geography Brasília medium +``` + +El DataFrame tiene una estructura MultiIndex con las siguientes columnas: +- `input_data`: Contiene todos los campos de entrada de `input_data_columns` +- `expected_output`: Contiene todos los campos de salida de `expected_output_columns` +- `metadata`: Contiene cualquier campo adicional de `metadata_columns` + + +### Control de versiones de conjuntos de datos{#dataset-versioning} + +Los conjuntos de datos tienen control de versiones automático para realizar un seguimiento de los cambios a lo largo del tiempo. La información de control de versiones permite la reproducibilidad y permite que los experimentos hagan referencia a versiones específicas de conjuntos de datos. + +El objeto `Dataset` tiene un campo, `current_version`, que corresponde a la versión más reciente; las versiones anteriores están sujetas a un periodo de retención de 90 días. + +Las versiones de los conjuntos de datos comienzan en `0`, y cada versión nueva incrementa la versión en 1. + +#### Cuando se crean nuevas versiones de conjuntos de datos{#when-new-dataset-versions-are-created} + +Se crea una nueva versión de un conjunto de datos cuando: +- Se agregan registros +- Actualización de registros (cambios en los campos `input`, `expected_output` o `metadata`) +- Eliminando registros + +Las versiones del conjunto de datos **NO** se crean al actualizar el nombre o la descripción del conjunto de datos. + +#### Retención de versiones {#version-retention} + +- La versión activa de un conjunto de datos se conserva durante 3 años. +- Las versiones anteriores (**NO** el contenido de `current_version`) se conservan durante 90 días. +- El periodo de retención de 90 días se reinicia cuando se utiliza una versión anterior; por ejemplo, cuando un experimento lee una versión. +- Después de 90 días consecutivos sin uso, una versión anterior es elegible para su eliminación permanente y es posible que ya no sea accesible. + +**Ejemplo del comportamiento de retención de versiones** + +Después de publicar `12`, `11` se convierte en una versión anterior con un periodo de 90 días. Después de 25 días, usted ejecuta un experimento con la versión `11`, lo que provoca que el periodo de 90 días **se reinicie**. Después de otros 90 días, durante los cuales usted no ha utilizado la versión `11`, la versión `11` podría eliminarse. + +### Acceso y gestión de registros de conjuntos de datos {#accessing-and-managing-dataset-records} + +Puede acceder a los registros del conjunto de datos utilizando la indexación estándar de Python: + +```python +# Get a single record +record = dataset[0] + +# Get multiple records +records = dataset[1:3] + +# Iterate through records +for record in dataset: + print(record["input_data"]) +``` + +La clase Dataset proporciona métodos para gestionar registros: `append()`, `update()`, `delete()`. Necesita `push()` cambios para guardar los cambios en Datadog. + +```python +# Add a new record +dataset.append({ + "id": "switzerland-capital", + "input_data": {"question": "What is the capital of Switzerland?"}, + "expected_output": "Bern", + "metadata": {"difficulty": "easy"} +}) + +# Update an existing record +dataset.update(0, { + "input_data": {"question": "What is the capital of China?"}, + "expected_output": "Beijing", + "metadata": {"difficulty": "medium"} +}) + +# Delete a record +dataset.delete(1) # Deletes the second record + +# Save changes to Datadog +dataset.push() +``` + +### Personalización de la tabla de conjuntos de datos {#customizing-the-dataset-table} + +Al ver los registros de un conjunto de datos, puede personalizar la tabla para examinar y comparar registros rápidamente sin expandir cada uno individualmente. + +#### Column picker {#column-picker} + +Utilice el Column picker para activar o desactivar columnas y arrástrelas para reordenarlas. + +#### Columnas personalizadas {#custom-columns} + +Extraiga campos específicos de los registros de su conjunto de datos y muéstrelos como columnas dedicadas de la tabla. Para agregar una columna personalizada, escriba una ruta de campo en la entrada {{< ui >}}Add Column{{< /ui >}} en la parte superior de la tabla. Puede agregar varias columnas personalizadas y reordenarlas arrastrando y soltando. La configuración de las columnas se guarda en el almacenamiento local de su navegador por proyecto. + +[1]: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html \ No newline at end of file diff --git a/hugo/content/es/llm_observability/instrument/_index.md b/hugo/content/es/llm_observability/instrument/_index.md new file mode 100644 index 00000000000..dd5e4e8f272 --- /dev/null +++ b/hugo/content/es/llm_observability/instrument/_index.md @@ -0,0 +1,85 @@ +--- +aliases: +- /es/llm_observability/instrumentation/ +description: Descripción general de las opciones de instrumentación para Agent Observability, + incluidos los enfoques basados en SDK y API para Python, Node.js y Java. +further_reading: +- link: /llm_observability/auto_instrumentation + tag: Instrumentación automática + text: Comience rápidamente con la instrumentación automática +- link: https://www.datadoghq.com/blog/llm-otel-semantic-convention + tag: Blog + text: Datadog LLM Observability admite de forma nativa las convenciones semánticas + de GenAI de OpenTelemetry +- link: https://learn.datadoghq.com/courses/llm-obs-getting-started + tag: Centro de aprendizaje + text: Introducción a Agent Observability +title: Instrumentación de Agent Observability +--- +Para comenzar con Agent Observability, instrumente su aplicación o agente(s) de LLM eligiendo entre varios enfoques según su lenguaje de programación y configuración. Datadog ofrece opciones de instrumentación integrales diseñadas para capturar trazas, métricas y evaluaciones detalladas de sus aplicaciones LLM y agentes con cambios mínimos en el código. + +## Opciones de instrumentación {#instrumentation-options} +Puede instrumentar su aplicación con los SDK de Python, Node.js o Java, o mediante el uso de la API de Agent Observability. + +### Instrumentación basada en SDK (recomendado) {#sdk-based-instrumentation-recommended} +Datadog proporciona SDK nativos que ofrecen las funciones de Agent Observability más completas: +| Lenguaje | SDK disponible | Instrumentación automática | Instrumentación personalizada | +| -------- | ------------- | -------------------- | ---------------------- | +| Python | Python 3.7+ | {{< X >}} | {{< X >}} | +| Node.js | Node.js 16+ | {{< X >}} | {{< X >}} | +| Java | Java 8+ | {{< X >}} | {{< X >}} | + + +Para instrumentar una aplicación de LLM con el SDK: +1. Instale el SDK de Agent Observability +2. Configure el SDK proporcionando [las variables de entorno requeridas][6] en el comando de inicio de su aplicación, o mediante programación [en el código][7]. Asegúrese de haber configurado su clave de Datadog API, su sitio de Datadog y el nombre de la aplicación de aprendizaje automático (ML). + +#### Auto-instrumentación {#auto-instrumentation} +La auto-instrumentación captura las llamadas a LLM para aplicaciones de Python, Node.js y Java sin requerir cambios en el código. Le permite obtener trazas y observabilidad listas para usar en frameworks y proveedores populares. Para obtener detalles adicionales y una lista completa de los frameworks y proveedores compatibles, consulte la [Documentación de auto-instrumentación][1]. + +La auto-instrumentación captura automáticamente: +- Prompts de entrada y completaciones de salida +- Uso de tokens y costos +- Latencia e información de errores +- Parámetros del modelo (temperatura, max_tokens, etc.) +- Metadatos específicos del framework + +
Al utilizar frameworks compatibles, no se requiere la creación manual de tramos para las llamadas a LLM. El SDK crea automáticamente los tramos adecuados con metadatos enriquecidos.
+ +#### Instrumentación personalizada {#custom-instrumentation} +Todos los SDK compatibles ofrecen capacidades avanzadas para la instrumentación personalizada de sus aplicaciones LLM además de la auto-instrumentación, incluyendo: +- Creación manual de tramos mediante decoradores de funciones o administradores de contexto +- Rastreo de flujos de trabajo complejos para aplicaciones LLM de varios pasos +- Monitoreo de Agent para LLM Agents autónomos +- Evaluaciones personalizadas y mediciones de calidad +- Seguimiento de sesiones para interacciones de usuario + +Para obtener más información, consulte la [Documentación de referencia del SDK][2]. + +### Instrumentación de la API HTTP {#http-api-instrumentation} +Si su lenguaje no es compatible con los SDK o está utilizando integraciones personalizadas, puede instrumentar su aplicación utilizando la API HTTP de Datadog. + +La API le permite: +- Enviar tramos directamente a través de endpoints HTTP +- Enviar evaluaciones personalizadas asociadas con tramos +- Incluir jerarquías de trazas completas para aplicaciones complejas +- Anotar tramos con entradas, salidas, metadatos y métricas + +Endpoints de la API: +- [API de tramos][4]: `POST` `https://api.{{< region-param key="dd_site" code="true" >}}/api/intake/llm-obs/v1/trace/spans` +- [API de evaluaciones][5]: `POST` `https://api.{{< region-param key="dd_site" code="true" >}}/api/intake/llm-obs/v2/eval-metric` + +Para obtener más información, consulte la [Documentación de la API HTTP][3]. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + + +[1]: /es/llm_observability/auto_instrumentation +[2]: /es/llm_observability/instrument/sdk +[3]: /es/llm_observability/setup/api +[4]: /es/llm_observability/instrument/api/?tab=model#spans-api +[5]: /es/llm_observability/instrument/api/?tab=model#evaluations-api +[6]: /es/llm_observability/instrument/sdk#command-line-setup +[7]: /es/llm_observability/instrument/sdk#in-code-setup \ No newline at end of file diff --git a/hugo/content/es/llm_observability/instrument/agent_observability_and_apm.md b/hugo/content/es/llm_observability/instrument/agent_observability_and_apm.md new file mode 100644 index 00000000000..8876838e6f0 --- /dev/null +++ b/hugo/content/es/llm_observability/instrument/agent_observability_and_apm.md @@ -0,0 +1,73 @@ +--- +aliases: +- /es/llm_observability/guide/llm_observability_and_apm +- /es/llm_observability/monitoring/llm_observability_and_apm/ +description: Aprenda a navegar entre los tramos de Agent Observability y los tramos + de APM para que pueda obtener información sobre las operaciones específicas de LLM + y su ecosistema de aplicaciones más amplio. +further_reading: +- link: /llm_observability/quickstart/terms/ + tag: Documentación + text: Obtenga información sobre los tramos de Agent Observability +- link: /glossary/#span/ + tag: Documentación + text: Obtenga información sobre los tramos de APM +- link: https://www.datadoghq.com/blog/troubleshooting-rag-llms/ + tag: Blog + text: Solución de problemas de aplicaciones LLM basadas en RAG +- link: https://learn.datadoghq.com/courses/llm-obs-investigations + tag: Centro de aprendizaje + text: Investigue con LLM Observability +title: Correlación de Agent Observability y APM +--- +## Descripción general {#overview} + +Esta guía explica cómo puede utilizar tanto Agent Observability como APM para correlacionar [tramos][6] de Agent Observability y APM en Datadog. + +Al instrumentar sus operaciones específicas de LLM con Agent Observability y su aplicación más amplia con APM, puede lograr lo siguiente: + + + +* Comprenda la visibilidad de extremo a extremo: Explore las solicitudes ascendentes y descendentes de sus aplicaciones LLM dentro del contexto de toda su aplicación. +* Desde APM, profundice en Agent Observability: Investigue si un problema con su aplicación es específico de las aplicaciones LLM, como una llamada a OpenAI. + +## Configuración {#setup} + +El SDK de Agent Observability está construido sobre el dd-tracer de APM. Esto le permite usar Agent Observability con [Application Performance Monitoring (APM)][7] + +Si está utilizando el [Agent Observability SDK for Python][1] junto con [`dd-tracer`][2] de APM, puede navegar entre los tramos en Datadog APM y Agent Observability sin configuración adicional. + +Si está utilizando la [Agent Observability API][3] con `dd-tracer` para APM: + +1. Utilice el método adecuado para obtener el ID de tramo del tracer (por ejemplo, usando `span.Context().SpanID()` para el tracer de Go). +1. Incluya los ID de tramo capturados en todas las solicitudes de la Agent Observability API. Esto vincula los tramos de APM y Agent Observability en Datadog. + +## Navegue entre tramos {#navigate-between-spans} + +Al utilizar esta integración, puede correlacionar datos en toda su pila de aplicaciones y comprender cómo interactúan sus aplicaciones LLM con otros componentes. También puede resolver problemas más rápidamente y optimizar el rendimiento de su aplicación. + +{{< img src="llm_observability/guides/apm/end_to_end_tracing.mp4" alt="Este video demuestra la capacidad de navegar entre los tramos de Agent Observability y los tramos de APM en Datadog" style="width:100%" video=true >}} + +### De Agent Observability a APM {#from-agent-observability-to-apm} + +Para comprender el contexto más amplio de sus operaciones de LLM dentro del ecosistema de su aplicación, seleccione un tramo de Agent Observability en el [Agent Observability Explorer][4] y haga clic en {{< ui >}}APM span{{< /ui >}} para navegar al tramo de APM relevante. + +{{< img src="llm_observability/guides/apm/llm_span.png" alt="Un tramo de Agent Observability con un tramo de APM relacionado al que puede navegar desde la página de Traces en Agent Observability." style="width:100%;" >}} + +### De APM a Agent Observability {#from-apm-to-agent-observability} + +Para acceder a información específica de LLM, seleccione un tramo de APM en el [Trace Explorer][5] y haga clic en {{< ui >}}View Span{{< /ui >}} en la sección de Agent Observability en la pestaña {{< ui >}}Info{{< /ui >}} para navegar al tramo de Agent Observability correspondiente. + +{{< img src="llm_observability/guides/apm/apm_span.png" alt="Un tramo de APM con un tramo de Agent Observability relacionado al que puede navegar desde la página de Traces en APM." style="width:100%;" >}} + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/llm_observability/setup/sdk/ +[2]: /es/tracing/trace_collection/automatic_instrumentation/dd_libraries/ +[3]: /es/llm_observability/setup/api/ +[4]: https://app.datadoghq.com/llm/traces +[5]: https://app.datadoghq.com/apm/traces +[6]: /es/llm_observability/quickstart/terms/#spans +[7]: /es/tracing \ No newline at end of file diff --git a/hugo/content/es/llm_observability/instrument/api.md b/hugo/content/es/llm_observability/instrument/api.md new file mode 100644 index 00000000000..75bafb90d1a --- /dev/null +++ b/hugo/content/es/llm_observability/instrument/api.md @@ -0,0 +1,707 @@ +--- +aliases: +- /es/tracing/llm_observability/api +- /es/llm_observability/api +- /es/llm_observability/setup/api +- /es/llm_observability/instrumentation/api/ +description: Documentación de referencia para la API HTTP de Agent Observability, + utilizada para enviar trazas y tramos de LLM a Datadog desde aplicaciones en cualquier + idioma. +further_reading: +- link: https://www.datadoghq.com/blog/llm-otel-semantic-convention + tag: Blog + text: Datadog LLM Observability admite de forma nativa las convenciones semánticas + de GenAI de OpenTelemetry +- link: https://www.datadoghq.com/blog/llm-prompt-tracking + tag: Blog + text: Realice un seguimiento, compare y optimice sus prompts de LLM con Datadog + LLM Observability +title: Referencia de la API HTTP +--- +## Descripción general {#overview} + +La API HTTP de Agent Observability proporciona una interfaz para que los desarrolladores envíen trazas y tramos relacionados con LLM a Datadog. Si su aplicación está escrita en Python, Node.js o Java, puede usar los [Agent Observability SDKs][1]. + +La API acepta tramos con marcas de tiempo de no más de 24 horas de antigüedad, lo que permite un rellenado limitado de datos retrasados. + +## API de tramos {#spans-api} + +Utilice este punto de conexión para enviar tramos a Datadog. Para obtener detalles sobre los tipos de tramos disponibles, consulte [Span Kinds][2]. + +Punto de conexión +: `https://api.{{< region-param key="dd_site" code="true" >}}/api/intake/llm-obs/v1/trace/spans` + +Método +: `POST` + +### Solicitud {#request} + +#### Encabezados (obligatorio) {#headers-required} +- `DD-API-KEY=` +- `Content-Type="application/json"` + +#### Datos del cuerpo (obligatorio) {#body-data-required} + +{{< tabs >}} +{{% tab "Model" %}} +| Campo | Tipo | Descripción | +|-------|------------------------------|------| +| datos [*obligatorio*]| [SpansRequestData](#spansrequestdata) | Punto de entrada al cuerpo de la solicitud. | +{{% /tab %}} + +{{% tab "Ejemplo" %}} +{{< code-block lang="json" >}} +{ + "data": { + "type": "span", + "attributes": { + "ml_app": "weather-bot", + "session_id": "1", + "feedback_join_key": "weather-request-123", + "tags": [ + "service:weather-bot", + "env:staging", + "user_handle:example-user@example.com", + "user_id:1234" + ], + "spans": [ + { + "parent_id": "undefined", + "trace_id": "", + "span_id": "", + "name": "health_coach_agent", + "meta": { + "kind": "agent", + "input": { + "value": "What is the weather like today and do i wear a jacket?" + }, + "output": { + "value": "It's very hot and sunny, there is no need for a jacket" + } + }, + "start_ns": 1713889389104152000, + "duration": 10000000000 + }, + { + "parent_id": "", + "trace_id": "", + "span_id": "", + "name": "qa_workflow", + "meta": { + "kind": "workflow", + "input": { + "value": "What is the weather like today and do i wear a jacket?" + }, + "output": { + "value": "It's very hot and sunny, there is no need for a jacket" + } + }, + "start_ns": 1713889389104152000, + "duration": 5000000000 + }, + { + "parent_id": "", + "trace_id": "", + "span_id": "", + "name": "generate_response", + "meta": { + "kind": "llm", + "input": { + "messages": [ + { + "role": "system", + "content": "Your role is to ..." + }, + { + "role": "user", + "content": "What is the weather like today and do i wear a jacket?" + } + ] + }, + "output": { + "messages": [ + { + "content": "It's very hot and sunny, there is no need for a jacket", + "role": "assistant" + } + ] + } + }, + "start_ns": 1713889389104152000, + "duration": 2000000000 + } + ] + } + } +} +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +### Respuesta {#response} +Si la solicitud es exitosa, la API responde con un código de red 202 y un cuerpo vacío. + +### Estándares de API {#api-standards} + +#### Error {#error} +| Campo | Tipo | Descripción | +|---------|--------|--------------------| +| mensaje | cadena | El mensaje de error. | +| pila | cadena | La traza de pila. | +| tipo | cadena | El tipo de error. | + +#### IO {#io} +| Campo | Tipo | Descripción | +|---------|--------|--------------| +| valor | cadena | Valor de entrada o salida. Si no se establece, este valor se infiere de los mensajes o documentos. | +| mensajes| [[Mensaje](#message)] | Lista de mensajes. Utilizar solo para tramos de LLM. | +| documentos| [[Documento](#document)] | Lista de documentos. Úselo solo como salida para tramos de recuperación. | +| prompt | [Prompt](#prompt) | Metadatos de prompt estructurados que incluyen la plantilla y las variables utilizadas para la entrada del LLM. Esto solo debe usarse para E/S de entrada en tramos de LLM. | +| incrustación | [float] | Lista de valores de incrustación. | +| parámetros | Dict[clave (cadena), valor] | Parámetros adicionales para la entrada o salida. | + + +**Nota**: Cuando solo se establece `input.messages` para un tramo de LLM, Datadog infiere `input.value` a partir de `input.messages` y utiliza la siguiente lógica de inferencia: + +1. Si existe un mensaje con `role=user`, el contenido del último mensaje se utiliza como `input.value`. +1. Si no hay un mensaje con rol `user`, `input.value` se infiere concatenando los campos de contenido de todos los mensajes, independientemente de sus roles. + +#### Mensaje {#message} + +| Campo | Tipo | Descripción | +|----------------------|--------|--------------------------| +| contenido [*obligatorio*] | cadena | El cuerpo del mensaje. | +| rol | cadena | El rol de la entidad. | +| llamadas_de_herramienta | [[LlamadaDeHerramienta](#toolcall)] | Lista de llamadas de herramienta realizadas en este mensaje. | +| resultados_de_herramienta | [[ResultadoDeHerramienta](#toolresult)] | Lista de resultados de ejecución de herramientas en este mensaje. | +| partes_de_audio | [[ParteDeAudio](#audiopart)] | Lista de segmentos de audio adjuntos a este mensaje. Úselo para tramos de LLM multimodales (voz). | +| partes_de_imagen | [[ParteDeImagen](#imagepart)] | Lista de segmentos de imagen adjuntos a este mensaje. Úselo para tramos de LLM multimodales (visión). | + +#### Documento {#document} +| Campo | Tipo | Descripción | +|----------------------|--------|--------------------------| +| text | string | El texto del documento. | +| name | string | El nombre del documento. | +| score | float | La puntuación asociada con este documento. | +| id | string | El id de este documento. | +| ranking | integer | La clasificación de este documento. | +| metadata | Dict[key (string), value] | Metadatos adicionales para este documento. | + +#### ToolCall {#toolcall} + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| name | string | El nombre de la herramienta que se está llamando. | +| arguments | Dict[key (string), value] | Los argumentos pasados a la herramienta. | +| tool_id | string | Identificador único para esta llamada de herramienta. | +| type | string | El tipo de llamada de herramienta. | + +#### ToolResult {#toolresult} + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| name | string | El nombre de la herramienta que fue llamada. | +| result | string | El resultado devuelto por la herramienta. | +| tool_id | string | Identificador único que coincide con la llamada de herramienta correspondiente. | +| type | string | El tipo de resultado de la herramienta. | + +#### AudioPart {#audiopart} + +Un segmento de audio en un mensaje. Proporcione `content` o `attachment_key`. + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| mime_type [*obligatorio*] | string | El tipo de medio del audio, como `audio/wav` o `audio/pcm`. | +| content | string | El audio codificado en base64, transportado en línea con el mensaje. | +| attachment_key | string | Una referencia al audio almacenado fuera de la carga útil del tramo, en lugar de en línea `content`. | + +#### ImagePart {#imagepart} + +Una imagen en un mensaje. Proporcione `content` o `attachment_key`. + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| mime_type [*obligatorio*] | string | El tipo de medio de la imagen, como `image/png` o `image/jpeg`. | +| content | string | La imagen codificada en base64, transportada en línea con el mensaje. | +| attachment_key | string | Una referencia a una imagen almacenada fuera de la carga útil del tramo, en lugar de en línea `content`. | + +#### ToolDefinition {#tooldefinition} + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| name | string | The name of the tool. | +| description | string | A description of what the tool does. | +| schema | Dict[key (string), value] | El schema que define los parámetros de la herramienta. | + +#### SpanField {#spanfield} + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| tipo | cadena | El tipo de campo de tramo. | + +#### Prompt {#prompt} + +
Agent Observability registra nuevas versiones de plantillas cuando el template o chat_template valor se actualiza. Si se espera que la entrada cambie entre invocaciones, extraiga las partes dinámicas en una variable.
+ +{{< tabs >}} +{{% tab "Model" %}} +| Campo | Tipo | Descripción | +|----------------------|--------|--------------------------| +| id | cadena | Identificador lógico para esta plantilla de prompt. Debe ser único por `ml_app`. | +| nombre | cadena | Nombre legible por humanos para el prompt. | +| versión | cadena | Etiqueta de versión para el prompt (por ejemplo, "1.0.0"). Si no se proporciona, Agent Observability genera automáticamente una versión calculando un hash del contenido de la plantilla. | +| plantilla | cadena | Forma de plantilla de cadena única. Utilice la sintaxis de marcador de posición (como `{{variable_name}}`) to embed variables. This should not be set with `chat_template`. | +| chat_template | [[Message]](#message) | Multi-message template form. Use placeholder syntax (like `{{variable_name}}`) to embed variables in message content. This should not be set with `template`. | +| variables | Dict[key (string), string] | Variables utilizadas para renderizar la plantilla. Las claves corresponden a los nombres de los marcadores de posición en la plantilla. | +| query_variable_keys | [string] | Claves de variables que contienen la consulta del usuario. Se utiliza para la detección de alucinaciones. | +| context_variable_keys | [string] | Claves de variables que contienen contenido de contexto o verdad fundamental. Se utiliza para la detección de alucinaciones. | +| tags | Dict[key (string), string] | Etiquetas para adjuntar a la ejecución del prompt. | + +{{% /tab %}} +{{% tab "Ejemplo" %}} +{{< code-block lang="json" >}} +{ + "id": "translation-prompt", + "chat_template": [ + { + "role": "system", + "content": "You are a translation service. You translate to {{language}}." + }, { + "role": "user", + "content": "{{user_input}}" + } + ], + "variables": { + "language": "french", + "user_input": "" + } +} +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +#### Meta {#meta} +| Campo | Tipo | Descripción | +|-------------|-------------------|--------------| +| tipo [*obligatorio*] | cadena | El [tipo de tramo][2]: `"agent"`, `"workflow"`, `"llm"`, `"tool"`, `"task"`, `"embedding"` o `"retrieval"`. | +| error | [Error](#error) | Información de error sobre el tramo. | +| input | [IO](#io) | La información de entrada del tramo. | +| output | [IO](#io) | La información de salida del tramo. | +| metadata | Dict[key (string), value] donde el valor es un float, bool o string | Datos sobre el tramo que no están relacionados con la entrada o salida. Por ejemplo, puede pasar `temperature` y `max_tokens` para tramos de LLM. | +| model_name | string | El nombre del modelo utilizado para tramos de LLM. | +| model_provider | string | El proveedor del modelo utilizado para tramos de LLM. | +| model_version | string | La versión del modelo utilizado para tramos de LLM. | +| embedding_for_prompt_idx | integer | El índice del prompt para el cual se calcularon los embeddings. | +| span | [SpanField](#spanfield) | Información del campo tramo. | +| tool_definitions | [[ToolDefinition](#tooldefinition)] | lista de definiciones de herramientas disponibles. | +| expected_output | [IO](#io) | La información de salida esperada del tramo. | +| intent | string | La intención del tramo. | + +#### Métricas {#metrics} + +Un diccionario de métricas a recopilar para el tramo. Las claves son nombres de métricas (cadenas) y los valores son valores de métricas (punteros float64). Las métricas comunes incluyen: +- `input_tokens` - El número de tokens de entrada (tramos de LLM) +- `output_tokens` - El número de tokens de salida (tramos de LLM) +- `total_tokens` - El número total de tokens (tramos de LLM) +- `non_cached_input_tokens` - El número de tokens de entrada no almacenados en caché (tramos de LLM) +- `cache_read_input_tokens` - El número de tokens de entrada leídos de la caché (tramos de LLM) +- `cache_write_input_tokens` - El número de tokens de entrada escritos en la caché (tramos de LLM) +- `reasoning_output_tokens` - El número de tokens de razonamiento (tramos de LLM) +- `time_to_first_token` - Tiempo en segundos para el primer token de salida (LLM en streaming, tramos raíz) +- `time_per_output_token` - Tiempo en segundos por token de salida (LLM en streaming, tramos raíz) +- `input_cost` - Costo de entrada en dólares (tramos de LLM y embedding) +- `output_cost` - Costo de salida en dólares (tramos de LLM) +- `total_cost` - Costo total en dólares (tramos de LLM) +- `non_cached_input_cost` - Costo de entrada sin caché en dólares (tramos de LLM) +- `cache_read_input_cost` - Costo de entrada de lectura de caché en dólares (tramos de LLM) +- `cache_write_input_cost` - Costo de entrada de escritura de caché en dólares (tramos de LLM) +- `reasoning_output_cost`- Costo de salida de razonamiento en dólares (tramos de LLM) + +Tipo: `Dict[key (string), float64]` + +#### Tramo {#span} + +| Campo | Tipo | Descripción | +|-------------|-------------------|---------------------| +| name [*obligatorio*] | string | El nombre del tramo. | +| span_id [*obligatorio*] | string | Un ID único para el tramo. | +| trace_id [*obligatorio*] | string | Un ID único compartido por todos los tramos en la misma traza. | +| parent_id [*obligatorio*] | string | ID del padre directo del tramo. Si el tramo es un tramo raíz, el `parent_id` debe ser `undefined`. | +| start_ns [*obligatorio*] | uint64 | La hora de inicio del tramo en nanosegundos. | +| duration [*obligatorio*] | float64 | La duración del tramo en nanosegundos. | +| meta [*obligatorio*] | [Meta](#meta) | El contenido principal relativo al tramo. | +| status | string | Estado de error (`"ok"` o `"error"`). El valor predeterminado es `"ok"`. | +| apm_trace_id | string | El ID de la traza de APM asociada. El valor predeterminado coincide con el campo `trace_id`. | +| metrics | Dict[key (string), float64] | Métricas de Datadog para recopilar. Consulte [Métricas](#metrics) para ver los nombres de métricas comunes. | +| session_id | string | El `session_id` del tramo. Anula el campo `session_id` de nivel superior. | +| feedback_join_key | string | Una clave definida por el cliente que se utiliza para conectar los comentarios a este tramo. Anula el campo `feedback_join_key` de nivel superior. Para obtener más detalles, consulte [Comentarios del usuario final][4]. | +| tags | [[Tag](#tag)] | Una lista de etiquetas para aplicar a este tramo en particular. | +| service | string | El nombre del servicio. | +| ml_app | string | El nombre de la aplicación LLM para este tramo. Anula el campo `ml_app` de nivel superior. | + +#### SpansRequestData {#spansrequestdata} +| Campo | Tipo | Descripción | +|------------|-------------------------------|--------------------------------------------| +| type [*obligatorio*] | string | Identificador de la solicitud. Establecer en `span`. | +| attributes [*obligatorio*] | [SpansPayload](#spanspayload) | El cuerpo de la solicitud. | + +#### SpansPayload {#spanspayload} +| Campo | Tipo | Descripción | +|----------|---------------------|--------------| +| ml_app [*obligatorio*] | cadena | El nombre de su aplicación de LLM. Consulte [Pautas para nombrar aplicaciones](#application-naming-guidelines). | +| spans [*obligatorio*] | [[Span](#span)] | Una lista de tramos. | +| tags | [[Etiqueta](#tag)] | Una lista de etiquetas de nivel superior para aplicar a cada tramo. | +| session_id | cadena | La sesión a la que pertenece la lista de tramos. También se puede anular o establecer en tramos individuales. | +| feedback_join_key | cadena | Una clave definida por el cliente que se utiliza para conectar los comentarios con los tramos en la carga útil. También se puede anular o establecer en tramos individuales. Para obtener más detalles, consulte [Comentarios del usuario final][4]. | + +#### Etiqueta {#tag} + +Las etiquetas deben tener el formato de una lista de cadenas (por ejemplo, `["user_handle:dog@gmail.com", "app_version:1.0.0"]`). Están destinadas a almacenar información contextual relacionada con el tramo. + +Para obtener más información sobre las etiquetas, consulte [Getting Started with Tags][3]. + +#### Pautas para nombrar aplicaciones {#application-naming-guidelines} + +El nombre de su aplicación (el valor de `DD_LLMOBS_ML_APP`) debe ser una cadena Unicode en minúsculas. Puede contener los caracteres enumerados a continuación: + +- Alfanuméricos +- Guiones bajos +- Guiones +- Dos puntos +- Puntos +- Barras + +El nombre puede tener hasta 193 caracteres de longitud y no puede contener guiones bajos contiguos o al final. + +## API de evaluaciones {#evaluations-api} + +
Para obtener ejemplos completos y orientación sobre cómo crear evaluadores personalizados, consulte la Guía para desarrolladores de evaluación.
+ +Utilice este punto de conexión para enviar evaluaciones y comentarios de los usuarios finales a Datadog. Las evaluaciones pueden asociarse con tramos, trazas o sesiones. Los comentarios de los usuarios finales pueden asociarse con tramos, trazas, sesiones o una clave de unión de comentarios definida por el cliente. + +Punto de conexión +: `https://api.{{< region-param key="dd_site" code="true" >}}/api/intake/llm-obs/v2/eval-metric` + +Método +: `POST` + +Use el campo `eval_scope` para establecer la granularidad de una evaluación: + +- **`span`** (predeterminado): La evaluación está asociada con un tramo específico. Use `join_on` para identificar el tramo de destino con un par clave-valor de etiqueta o una combinación de ID de tramo e ID de traza. +- **`trace`**: La evaluación está asociada con una traza completa. Use `join_on` para identificar el tramo raíz de la traza. +- **`session`**: La evaluación está asociada con una sesión. Proporcione `session_id` en lugar de `join_on`. + +Para enviar comentarios, configure `event_kind` en `feedback`. Los eventos de retroalimentación deben incluir `submitter.id`, omitir `join_on` y proporcionar exactamente un campo de destino: `span_id`, `trace_id`, `session_id` o `feedback_join_key`. Si se omite `eval_scope`, Datadog lo infiere del campo de destino. + +Use `feedback_join_key` cuando los comentarios se apliquen a una entidad externa, como un ID de incidente, ID de informe, ID de tarea o ID de verificación de lanzamiento, en lugar de a un solo tramo, traza o sesión. Para que los comentarios aparezcan con la telemetría relacionada, establezca el mismo `feedback_join_key` en los tramos relacionados cuando los envíe con la [API de tramos](#spans-api) o añadiendo una etiqueta `feedback_join_key:incident-1234` a través de [Enriquecer tramos][5]. + +Para crear widgets de tablero a partir de la retroalimentación, cree el widget como lo haría para una evaluación y añada el filtro `@event_kind:feedback`. + +
La compatibilidad para filtrar tramos, trazas o sesiones por comentarios no está disponible. Por ejemplo, todavía no puede filtrar trazas solo para aquellas con comentarios de pulgar hacia abajo. Utilice tableros con alcance a @event_kind:feedback en su lugar.
+ +### Solicitud {#request-1} + +#### Encabezados (obligatorio) {#headers-required-1} +- `DD-API-KEY=` +- `Content-Type="application/json"` + +#### Datos del cuerpo (obligatorio) {#body-data-required-1} + +{{< tabs >}} +{{% tab "Model" %}} +| Campo | Tipo | Descripción | +|-------|------------------------------|------| +| datos [*obligatorio*] | [EvalMetricsRequestData](#evalmetricsrequestdata) | Punto de entrada al cuerpo de la solicitud. | +{{% /tab %}} + +{{% tab "Ejemplo" %}} +{{< code-block lang="json" >}} +{ + "data": { + "type": "evaluation_metric", + "attributes": { + "metrics": [ + { + "eval_scope": "span", + "join_on": { + "span": { + "span_id": "20245611112024561111", + "trace_id": "13932955089405749200" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609459200, + "metric_type": "categorical", + "label": "Sentiment", + "categorical_value": "Positive" + }, + { + "eval_scope": "trace", + "join_on": { + "span": { + "span_id": "20245611112024561111", + "trace_id": "13932955089405749200" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "score", + "label": "Accuracy", + "score_value": 3, + "assessment": "fail", + "reasoning": "The response provided incorrect information about the weather forecast." + }, + { + "eval_scope": "session", + "session_id": "abc123def456", + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "boolean", + "label": "Topic Relevancy", + "boolean_value": true + }, + { + "eval_scope": "span", + "join_on": { + "tag": { + "key": "msg_id", + "value": "1123132" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "json", + "label": "Custom Evaluation", + "json_value": { + "verdict": "pass", + "confidence": 0.95, + "is_valid": true, + "metrics": { + "accuracy": 0.92, + "precision": 0.88 + }, + "passed_checks": ["coherence", "relevance", "factuality"] + } + }, + { + "event_kind": "feedback", + "feedback_join_key": "weather-request-123", + "ml_app": "weather-bot", + "timestamp_ms": 1765990800016, + "metric_type": "text", + "label": "user_comment", + "text_value": "The response did not answer whether I needed a jacket.", + "assessment": "fail", + "submitter": { + "id": "user-123", + "type": "user" + } + } + ] + } + } +} +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +### Respuesta {#response-1} + +{{< tabs >}} +{{% tab "Model" %}} +| Campo | Tipo | Descripción | Garantizado | +|---------|-----------------------------|------------------------------------------|------------| +| ID | cadena | UUID de respuesta generado al momento del envío. | Sí | +| métricas | [[EvalMetric](#evalmetric)] | Una lista de evaluaciones o eventos de retroalimentación. | Sí | +{{% /tab %}} + +{{% tab "Ejemplo" %}} +{{< code-block lang="json" >}} +{ + "data": { + "type": "evaluation_metric", + "id": "456f4567-e89b-12d3-a456-426655440000", + "attributes": { + "metrics": [ + { + "id": "d4f36434-f0cd-47fc-884d-6996cee26da4", + "eval_scope": "span", + "join_on": { + "span": { + "span_id": "20245611112024561111", + "trace_id": "13932955089405749200" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609459200, + "metric_type": "categorical", + "label": "Sentiment", + "categorical_value": "Positive" + }, + { + "id": "cdfc4fc7-e2f6-4149-9c35-edc4bbf7b525", + "eval_scope": "trace", + "join_on": { + "span": { + "span_id": "20245611112024561111", + "trace_id": "13932955089405749200" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "score", + "label": "Accuracy", + "score_value": 3, + "assessment": "fail", + "reasoning": "The response provided incorrect information about the weather forecast." + }, + { + "id": "haz3fc7-g3p2-1s37-8m12-ndk4hbf7a522", + "eval_scope": "session", + "session_id": "abc123def456", + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "boolean", + "label": "Topic Relevancy", + "boolean_value": true + }, + { + "id": "abc1234-h4i5-6j78-9k01-lmn2opq3rst4", + "eval_scope": "span", + "join_on": { + "tag": { + "key": "msg_id", + "value": "1123132" + } + }, + "ml_app": "weather-bot", + "timestamp_ms": 1609479200, + "metric_type": "json", + "label": "Custom Evaluation", + "json_value": { + "verdict": "pass", + "confidence": 0.95, + "is_valid": true, + "metrics": { + "accuracy": 0.92, + "precision": 0.88 + }, + "passed_checks": ["coherence", "relevance", "factuality"] + } + }, + { + "id": "fedbk34-h4i5-6j78-9k01-lmn2opq3rst4", + "event_kind": "feedback", + "eval_scope": "external", + "feedback_join_key": "weather-request-123", + "ml_app": "weather-bot", + "timestamp_ms": 1765990800016, + "metric_type": "text", + "label": "user_comment", + "text_value": "The response did not answer whether I needed a jacket.", + "assessment": "fail", + "submitter": { + "id": "user-123", + "type": "user" + } + } + ] + } + } +} +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +### Estándares de API {#api-standards-1} + +#### Atributos {#attributes} + +| Campo | Tipo | Descripción | +|---------|--------------|-----------------------------------------------------| +| métricas [*obligatorio*] | [[EvalMetric](#evalmetric)] | Una lista de evaluaciones o eventos de retroalimentación. | +| etiquetas | [[Tag](#tag)] | Una lista de etiquetas para aplicar a todas las evaluaciones o eventos de retroalimentación en la carga útil. | + +#### EvalMetric {#evalmetric} + +| Campo | Tipo | Descripción | +|--------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------| +| ID | string | UUID de la métrica de evaluación (generado al enviar). | +| event_kind | string | El tipo de evento. Los valores aceptados son `"evaluation"` y `"feedback"`. El valor predeterminado es `"evaluation"` cuando se omite. | +| eval_scope | string | La granularidad del evento: `"span"` (predeterminado para evaluaciones), `"trace"`, `"session"`, o `"external"` para retroalimentación dirigida por `feedback_join_key`. Para la retroalimentación, esto puede omitirse e inferirse del campo de destino. | +| join_on [*obligatorio para evaluaciones con contexto de tramo y traza*] | [[JoinOn](#joinon)] | Cómo se vincula una evaluación a un tramo o traza. Obligatorio para evaluaciones cuando `eval_scope` es `"span"` o `"trace"`. Debe estar ausente para la retroalimentación y para las evaluaciones de sesión. | +| span_id | string | Para la retroalimentación, el ID del tramo con el que se asocia la retroalimentación. Use esto como uno de los campos de destino de la retroalimentación. | +| trace_id | string | Para la retroalimentación, el ID de traza con el que se asocia la retroalimentación. Use esto como uno de los campos de destino de la retroalimentación. | +| session_id [*obligatorio para evaluaciones con contexto de sesión*] | string | El ID de sesión con el que se asocia el evento. Obligatorio para evaluaciones cuando `eval_scope` es `"session"`. Para la retroalimentación, use esto como uno de los campos de destino de la retroalimentación. Debe estar ausente cuando `eval_scope` que no es de retroalimentación es `"span"` o `"trace"`. | +| feedback_join_key | string | Para comentarios, una clave definida por el cliente para comentarios que se aplica a una entidad externa en lugar de a un solo tramo, traza o sesión. Debe estar ausente para las evaluaciones. | +| submitter [*requerido para comentarios*] | [Submitter](#submitter) | El usuario, agente u otra entidad que envió los comentarios. | +| timestamp_ms [*requerido*] | int64 | Una marca de tiempo UNIX UTC en milisegundos que representa la hora en que se envió la solicitud. | +| ml_app [*requerido*] | string | El nombre de su aplicación de LLM. Consulte [Pautas para nombrar aplicaciones](#application-naming-guidelines). | +| metric_type [*requerido*] | string | El tipo de valor: `"categorical"`, `"score"`, `"boolean"`, `"json"` o `"text"`. El tipo `"text"` solo es compatible con eventos de retroalimentación. | +| label [*requerido*] | string | El nombre o etiqueta único para la evaluación o retroalimentación proporcionada. | +| categorical_value [*requerido si metric_type es \"categorical\"*] | string | Una cadena que representa el valor de la categoría. No es requerido cuando `status` es `"WARN"` o `"ERROR"`. | +| score_value [*requerido si metric_type es \"score\"*] | number | Un valor de puntuación. No es requerido cuando `status` es `"WARN"` o `"ERROR"`. | +| boolean_value [*requerido si metric_type es \"boolean\"*] | boolean | Un valor booleano. No es requerido cuando `status` es `"WARN"` o `"ERROR"`. | +| json_value [*requerido si metric_type es \"json\"*] | Dict[key (string), value] | Un valor de objeto JSON. No es requerido cuando `status` es `"WARN"` o `"ERROR"`. | +| text_value [*requerido si metric_type es \"text\"*] | string | Un valor de texto. Esto solo es compatible con eventos de comentarios y es útil para comentarios de texto libre. | +| status | string | El resultado de la ejecución del evaluador. Los valores aceptados son `"OK"`, `"WARN"` y `"ERROR"`. Cuando `"WARN"` o `"ERROR"`, el evaluador se omitió o falló, y no se requiere ningún campo de valor escrito (`categorical_value`, `score_value`, etcétera). | +| error | [EvalMetricError](#evalmetricerror) | Detalles estructurados del error. Obligatorio cuando `status` es `"WARN"` o `"ERROR"`. | +| evaluación | cadena | Una evaluación de esta evaluación. Los valores aceptados son `pass` y `fail`. | +| razonamiento | cadena | Una explicación textual del resultado de la evaluación. | +| etiquetas | [[Etiqueta](#tag)] | Una lista de etiquetas para aplicar a esta métrica de evaluación en particular. | + +Para eventos de comentarios, proporcione exactamente uno de `span_id`, `trace_id`, `session_id` o `feedback_join_key`. Si proporciona `eval_scope`, debe coincidir con el campo de destino: `span_id` se asigna a `"span"`, `trace_id` se asigna a `"trace"`, `session_id` se asigna a `"session"` y `feedback_join_key` se asigna a `"external"`. + +#### Remitente {#submitter} + +| Campo | Tipo | Descripción | +|-------|------|-------------| +| id [*obligatorio*] | cadena | Identificador del usuario, agente u otra entidad que envió los comentarios. | +| tipo | cadena | Categoría del remitente. Los valores recomendados son `user` y `agent`. | + +#### JoinOn {#joinon} + +| Campo | Tipo | Descripción | +|------------|-----------------|--------------| +| tramo | [[SpanContext](#spancontext)] | Identifica de forma única el tramo asociado con esta evaluación mediante el ID de tramo y el ID de traza. | +| etiqueta | [[TagContext](#tagcontext)] | Identifica de forma única el tramo asociado con esta evaluación mediante un par de clave-valor de etiqueta. | + +#### SpanContext {#spancontext} + +| Campo | Tipo | Descripción | +|------------|-----------------|--------------| +| span_id [*obligatorio*] | string | El ID de tramo con el que está asociada esta evaluación. Debe ser una cadena decimal (por ejemplo, `"20245611112024561111"`). Si su instrumentación produce ID de tramo hexadecimales (como OpenTelemetry), conviértalos a decimal antes de enviarlos. | +| trace_id [*obligatorio*] | string | El ID de traza del tramo con el que está asociada esta evaluación. Debe ser una cadena decimal (por ejemplo, `"13932955089405749200"`) o una cadena hexadecimal en minúsculas de 32 caracteres para IDs de traza de 128 bits. | + +#### TagContext {#tagcontext} + +| Campo | Tipo | Descripción | +|------------|-----------------|--------------| +| key [*obligatorio*] | string | El nombre de la clave de etiqueta. Esta debe ser la misma clave utilizada al establecer la etiqueta en el tramo. | +| value [*obligatorio*] | string | El valor de la etiqueta. Este valor debe coincidir exactamente con un tramo con el par clave/valor de etiqueta especificado. | + + +#### EvalMetricsRequestData {#evalmetricsrequestdata} + +| Campo | Tipo | Descripción | +|------------|-----------------|--------------| +| tipo [*obligatorio*] | string | Identificador para la solicitud. Establecer en `evaluation_metric`. | +| atributos [*obligatorio*] | [[Atributos](#attributes)] | El cuerpo de la solicitud. | + +#### EvalMetricError {#evalmetricerror} + +| Campo | Tipo | Descripción | +|---------|--------|------------------------------------------------------------| +| tipo | cadena | El tipo de error o excepción (por ejemplo, `"ValueError"`). | +| mensaje | cadena | Una descripción del error legible por humanos. | +| traza de pila | string | La traza de pila, si está disponible. | + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/llm_observability/setup/sdk/ +[2]: /es/llm_observability/quickstart/terms/ +[3]: /es/getting_started/tagging/ +[4]: /es/llm_observability/configure/evaluations/end_user_feedback +[5]: /es/llm_observability/instrument/sdk/?tab=python#enriching-spans \ No newline at end of file diff --git a/hugo/content/es/llm_observability/quickstart/_index.md b/hugo/content/es/llm_observability/quickstart/_index.md new file mode 100644 index 00000000000..627ea5ea42d --- /dev/null +++ b/hugo/content/es/llm_observability/quickstart/_index.md @@ -0,0 +1,247 @@ +--- +aliases: +- /es/tracing/llm_observability/quickstart +description: Comience con Agent Observability instrumentando una aplicación LLM de + Python, Node.js o Java usando el SDK de Agent Observability. +further_reading: +- link: /llm_observability/instrument/auto_instrumentation + tag: Documentación + text: Frameworks y bibliotecas de instrumentación automática compatibles +- link: /llm_observability/instrument/sdk + tag: Documentación + text: Referencia del SDK de Agent Observability para instrumentación manual +- link: /llm_observability/instrument/api + tag: Documentación + text: API HTTP de Agent Observability para instrumentación independiente del lenguaje +- link: /llm_observability/instrument/otel_instrumentation + tag: Documentación + text: Instrumentar con OpenTelemetry +- link: /llm_observability/configure/evaluations + tag: Evaluaciones + text: Configure evaluaciones en su aplicación +- link: /llm_observability/lapdog + tag: Documentación + text: Herramienta de desarrollo local para Agent Observability +title: Inicio rápido +--- +Esta página demuestra el uso del SDK de Agent Observability de Datadog para instrumentar una aplicación LLM de Python, Node.js o Java. + +### Requisitos previos {#prerequisites} + +Agent Observability requiere una clave de Datadog API si no tiene un Datadog Agent en ejecución. Encuentre su clave de API [en Datadog](https://app.datadoghq.com/organization-settings/api-keys). + +### Instrumente Agent Observability con un agente de codificación {#instrument-agent-observability-with-a-coding-agent} + +Instrumente Agent Observability con el agente de codificación de su elección pegando el siguiente prompt: + +```bash +Follow the instructions at https://docs.datadoghq.com/llm_observability/instrument/agentic.md to instrument my application with Datadog Agent Observability. When configuring the environment, use the following values for variable entries: + +DD_SITE={{< region-param key="dd_site" code="true" >}} +DD_API_KEY= +``` + +**Nota:** Proporcionar la clave de API como parte del prompt es opcional y no es necesario para que el agente de codificación instrumente su aplicación. + +### Configuración manual {#manual-setup} + +Siga las instrucciones de configuración en el [flujo de incorporación en la aplicación](https://app.datadoghq.com/llm/applications?setupMethod=manual&showOnboarding=true) de Datadog para obtener una experiencia de inicio rápido interactiva. + +{{< tabs >}} +{{% tab "Python" %}} + +1. Instale el SDK: + + ```shell + pip install ddtrace + ``` + +2. Prefije su comando de inicio de Python con `ddtrace-run`: + + ```shell + DD_LLMOBS_ENABLED=1 \ + DD_LLMOBS_ML_APP=quickstart-app \ + DD_SITE= \ + DD_API_KEY= \ + ddtrace-run + ``` + +Después de habilitarlo, el SDK rastrea automáticamente las llamadas a [marcos de Python compatibles][auto-instr-py] como OpenAI, LangChain, LangGraph, Bedrock, Anthropic y más. Si su framework no aparece en la lista, añada [instrumentación manual][sdk] para rastrear sus llamadas de LLM directamente. + +[auto-instr-py]: /llm_observability/instrument/auto_instrumentation/?tab=python +[sdk]: /llm_observability/instrument/sdk?tab=python + +{{% /tab %}} + +{{% tab "Node.js" %}} +1. Instale el SDK: + + ```shell + npm install dd-trace + ``` + +2. Importe e inicialice `dd-trace` con Agent Observability como la primera dependencia en el punto de entrada de su aplicación: + ```shell + DD_LLMOBS_ENABLED=1 \ + DD_LLMOBS_ML_APP=quickstart-app \ + DD_SITE= \ + DD_API_KEY= \ + NODE_OPTIONS="--import dd-trace/initialize.mjs" + ``` + +Después de habilitarlo, el SDK rastrea automáticamente las llamadas a [frameworks de Node.js compatibles][1] como OpenAI, LangChain, Vercel AI SDK, Bedrock, Anthropic y más. Si su framework no aparece en la lista, añada [instrumentación manual][2] para rastrear sus llamadas de LLM directamente. + +**Next.js**: Consulte [Instrumentar una aplicación Next.js para Agent Observability][3] para configurar correctamente sus aplicaciones Next.js con el SDK de Agent Observability. + +[1]: /es/llm_observability/instrument/auto_instrumentation/?tab=nodejs +[2]: /es/llm_observability/instrument/sdk?tab=nodejs +[3]: /es/llm_observability/guide/nextjs_guide + +{{% /tab %}} +{{% tab "Java" %}} +1. Instale el SDK: + + ```shell + wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer' + ``` + +2. Añada el argumento de JVM `-javaagent` a su comando de inicio de Java: + ```shell + java -javaagent:/path/to/dd-java-agent.jar \ + -Ddd.llmobs.enabled=true \ + -Ddd.llmobs.ml.app=quickstart-app \ + -Ddd.site= \ + -Ddd.api.key= \ + -jar path/to/your/app.jar + ``` + +Después de habilitarlo, el SDK rastrea automáticamente las llamadas a [frameworks de Java compatibles][1]. La instrumentación automática de Java es compatible con OpenAI y Azure OpenAI. Para otras bibliotecas como Bedrock o LangChain4j, utilice [instrumentación manual][2] en su lugar. + +[1]: /es/llm_observability/instrument/auto_instrumentation/?tab=java +[2]: /es/llm_observability/instrument/sdk?tab=java + +{{% /tab %}} +{{% tab "Otros lenguajes / API HTTP" %}} + +Para lenguajes distintos de Python, Node.js o Java, utilice la [API HTTP de Agent Observability][1] para enviar spans directamente a Datadog sin un SDK. + +Si su aplicación emite spans que cumplen con la [convención semántica de GenAI de OpenTelemetry][2], consulte [Instrumentación de OpenTelemetry][2] en su lugar. + +[1]: /es/llm_observability/instrument/api +[2]: /es/llm_observability/instrument/otel_instrumentation + +{{% /tab %}} +{{< /tabs >}} + +Su sitio de Datadog es {{< region-param key="dd_site" code="true" >}}. Reemplace `` con su clave de Datadog API. + +### Visualizar trazas {#view-traces} + +Realice solicitudes a su aplicación que activen llamadas a LLM y luego visualice las trazas en la pestaña {{< ui >}}Traces{{< /ui >}} [de la página {{< ui >}}Agent Observability{{< /ui >}}][3] en Datadog. + +Si no ve ninguna traza: + +- **Verifique que su biblioteca esté instrumentada automáticamente**: La instrumentación automática solo captura llamadas a [frameworks y bibliotecas compatibles][6]. Consulte la lista de compatibilidad para [Python][7], [Node.js][8] o [Java][9]. Si su biblioteca no aparece en la lista, debe agregar la instrumentación manualmente. +- **Agregue instrumentación manual**: Utilice el [Agent Observability SDK][5] para envolver sus llamadas a LLM con spans directamente en el código. Esto funciona para cualquier biblioteca o proveedor de modelos. +- **Utilice la API HTTP**: La [Agent Observability HTTP API][10] acepta spans de cualquier lenguaje o framework y no requiere un SDK. +- **Utilice OpenTelemetry**: Si su framework emite spans que cumplen con la [OpenTelemetry GenAI semantic convention][11], consulte [OpenTelemetry Instrumentation][11] para obtener detalles de configuración. + + +### Próximos pasos {#next-steps} + +Una vez que las trazas se estén enviando desde su aplicación, puede: + +- [Configurar evaluaciones][4] que puede usar para evaluar la efectividad de su aplicación de LLM. +- Agregue [instrumentación manual][5] a su aplicación y extraiga datos que la instrumentación automática no puede. + + +## Ejemplo de aplicación \"Hello World\" {#example-hello-world-application} + +Consulte a continuación una aplicación sencilla que se puede usar para comenzar a explorar el producto Agent Observability. + + +{{< tabs >}} +{{% tab "Python" %}} + +1. Instale OpenAI con `pip install openai`. + +2. Guarde el script de ejemplo `app.py`: + + ```python + import os + from openai import OpenAI + + oai_client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY")) + completion = oai_client.chat.completions.create( + model="gpt-4o-mini", + messages=[ + {"role": "system", "content": "You are a helpful customer assistant for a furniture store."}, + {"role": "user", "content": "I'd like to buy a chair for my living room."}, + ], + ) + ``` + +3. Ejecute la aplicación: + + ```shell + DD_LLMOBS_ENABLED=1 \ + DD_LLMOBS_ML_APP=quickstart-app \ + DD_API_KEY= \ + ddtrace-run app.py + ``` +{{% /tab %}} + +{{% tab "Node.js" %}} +1. Instale OpenAI con `npm install openai`. + +2. Guarde el script de ejemplo `app.js`: + + ```js + const { OpenAI } = require('openai'); + const oaiClient = new OpenAI(process.env.OPENAI_API_KEY); + + async function main () { + const completion = await oaiClient.chat.completions.create({ + model: 'gpt-4o-mini', + messages: [ + { role: 'system', content: 'You are a helpful customer assistant for a furniture store.' }, + { role: 'user', content: 'I\'d like to buy a chair for my living room.' }, + ] + }); + return completion; + } + + main().then(console.log) + ``` + +3. Ejecute la aplicación: + ```shell + DD_LLMOBS_ENABLED=1 \ + DD_LLMOBS_ML_APP=quickstart-app \ + DD_API_KEY= \ + NODE_OPTIONS="--import dd-trace/initialize.mjs" node app.js + ``` + +{{% /tab %}} +{{< /tabs >}} + + +## Pruebe Agent Observability localmente con lapdog {#try-agent-observability-locally-with-lapdog} + +Para probar Agent Observability de forma local y gratuita, [siga los pasos][12] para instrumentar su aplicación y visualizar los datos localmente con [lapdog](https://lapdog.datadoghq.com). + + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[3]: https://app.datadoghq.com/llm/traces +[4]: /es/llm_observability/configure/evaluations +[5]: /es/llm_observability/instrument/sdk#manual-instrumentation +[6]: /es/llm_observability/instrument/auto_instrumentation +[7]: /es/llm_observability/instrument/auto_instrumentation/?tab=python +[8]: /es/llm_observability/instrument/auto_instrumentation/?tab=nodejs +[9]: /es/llm_observability/instrument/auto_instrumentation/?tab=java +[10]: /es/llm_observability/instrument/api +[11]: /es/llm_observability/instrument/otel_instrumentation +[12]: /es/llm_observability/lapdog \ No newline at end of file diff --git a/hugo/content/es/logs/log_configuration/parsing.md b/hugo/content/es/logs/log_configuration/parsing.md index 38335df0f65..769515a63ec 100644 --- a/hugo/content/es/logs/log_configuration/parsing.md +++ b/hugo/content/es/logs/log_configuration/parsing.md @@ -10,64 +10,67 @@ algolia: aliases: - /es/logs/parsing/ - /es/logs/processing/parsing -description: Analiza tus registros utilizando el Procesador Grok +description: Analice sus registros usando el procesador Grok further_reading: -- link: https://learn.datadoghq.com/courses/log-pipelines - tag: Centro de Aprendizaje - text: Aprende a construir y modificar canalizaciones de registros - link: /logs/log_configuration/processors tag: Documentación - text: Aprende a procesar tus registros -- link: https://www.youtube.com/watch?v=AwW70AUmaaQ&list=PLdh-RwQzDsaM9Sq_fi-yXuzhmE7nOlqLE&index=3 - tag: Video - text: 'Consejos y Trucos de Datadog: Usa el análisis Grok para extraer campos de - los registros' + text: Aprenda a procesar sus registros +- link: /logs/logging_without_limits/ + tag: Documentación + text: Controle el volumen de registros indexados por Datadog - link: /logs/faq/how-to-investigate-a-log-parsing-issue/ tag: PREGUNTAS FRECUENTES - text: ¿Cómo investigar un problema de análisis de registros? + text: ¿Cómo investigar un problema de parseo de registros? - link: /logs/guide/log-parsing-best-practice/ tag: PREGUNTAS FRECUENTES - text: Análisis de Registros - Mejores Prácticas -- link: /logs/logging_without_limits/ - tag: Documentación - text: Controla el volumen de registros indexados por Datadog + text: 'Parseo de registros: mejores prácticas' +- link: https://learn.datadoghq.com/courses/log-pipelines + tag: Centro de aprendizaje + text: Aprenda a crear y modificar canalizaciones de registros - link: https://learn.datadoghq.com/courses/debugging-log-pipelines - tag: Centro de Aprendizaje + tag: Centro de aprendizaje text: Depuración de canalizaciones de registros -title: Análisis +- link: https://www.datadoghq.com/blog/detect-http2-abuse-apache-web-server-logs/ + tag: Blog + text: Cómo detectar abusos de HTTP/2 en los registros del servidor web Apache +- link: https://www.youtube.com/watch?v=AwW70AUmaaQ&list=PLdh-RwQzDsaM9Sq_fi-yXuzhmE7nOlqLE&index=3 + tag: Video + text: 'Consejos y trucos de Datadog: utilice el parseo de Grok para extraer campos + de los registros' +title: Parseo --- -{{< learning-center-callout header="Prueba el análisis Grok en el Centro de Aprendizaje" btn_title="Inscríbete Ahora" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} - Aprende a construir y modificar canalizaciones de registros, gestionarlas con el Escáner de Canalizaciones y estandarizar los nombres de atributos en los registros procesados para mantener la consistencia. +{{< learning-center-callout header="Pruebe el parseo de Grok en el Centro de aprendizaje" btn_title="Inscríbase ahora" btn_url="https://learn.datadoghq.com/courses/log-pipelines">}} + Aprenda a crear y modificar canalizaciones de registros, adminístrelas con el Pipeline Scanner y estandarice los nombres de los atributos estándar en los registros procesados para lograr coherencia. {{< /learning-center-callout >}} ## Resumen {#overview} -Datadog analiza automáticamente los registros en formato JSON. Para otros formatos, Datadog te permite enriquecer tus registros con la ayuda del Analizador Grok. -La sintaxis Grok proporciona una forma más fácil de analizar registros que las expresiones regulares puras. El Analizador Grok te permite extraer atributos de mensajes de texto semiestructurados. +Datadog analiza automáticamente los registros con formato JSON. Para otros formatos, Datadog le permite enriquecer sus registros con la ayuda de Grok Parser. +La sintaxis de Grok proporciona una forma más sencilla de analizar registros que las expresiones regulares puras. El Grok Parser le permite extraer atributos de mensajes de texto semiestructurados. -Grok viene con patrones reutilizables para analizar enteros, direcciones IP, nombres de host, etc. Estos valores deben enviarse al analizador grok como cadenas. +Grok viene con patrones reutilizables para analizar números enteros, direcciones IP, nombres de servidor, etc. Estos valores deben enviarse al Grok Parser como cadenas. -Puedes escribir reglas de análisis con la sintaxis `%{MATCHER:EXTRACT:FILTER}`: +Puede escribir reglas de parseo con la sintaxis `%{MATCHER:EXTRACT:FILTER}`: -* **Matcher**: Una regla (posiblemente una referencia a otra regla de token) que describe qué esperar (número, palabra, noEspacio, etc.). +* **Coincidencia**: Una regla (posiblemente una referencia a otra regla de token) que describe qué esperar (número, palabra, noEspacio, etc.). -* **Extract** (opcional): Un identificador que representa el destino de captura para el fragmento de texto coincidente con el *Matcher*. +* **Extracción** (opcional): Un identificador que representa el destino de captura para el fragmento de texto que coincide con la *Coincidencia*. -* **Filter** (opcional): Un post-procesador de la coincidencia para transformarla. +* **Filtro** (opcional): Un posprocesador de la coincidencia para transformarla. -Ejemplo de un registro no estructurado clásico: +Ejemplo para un registro clásico no estructurado: ```text john connected on 11/08/2017 ``` -Con la siguiente regla de análisis: +Con la siguiente regla de parseo: ```text MyParsingRule %{word:user} connected on %{date("MM/dd/yyyy"):date} ``` -Después de procesar, se genera el siguiente registro estructurado: +Después del procesamiento, se genera el siguiente registro estructurado: ```json { @@ -78,31 +81,31 @@ Después de procesar, se genera el siguiente registro estructurado: **Nota**: -* Si tienes múltiples reglas de análisis en un solo analizador Grok: - * Solo una puede coincidir con cualquier registro dado. La primera que coincida, de arriba hacia abajo, es la que realiza el análisis. - * Cada regla puede hacer referencia a reglas de análisis definidas por encima de sí misma en la lista. -* Debes tener nombres de regla únicos dentro del mismo analizador Grok. -* El nombre de la regla debe contener solo: caracteres alfanuméricos, `_`, y `.`. Debe comenzar con un carácter alfanumérico. +* Si tiene varias reglas de parseo en un solo Grok Parser: + * Solo una puede coincidir con cualquier registro dado. La primera que coincida, de arriba hacia abajo, es la que realiza el parseo. + * Cada regla puede hacer referencia a reglas de parseo definidas por encima de sí misma en la lista. +* Debe tener nombres de regla únicos dentro del mismo Grok Parser. +* El nombre de la regla debe contener solo: caracteres alfanuméricos, `_` y `.`. Debe comenzar con un carácter alfanumérico. * Las propiedades con valores nulos o vacíos no se muestran. -* Debes definir tu regla de análisis para que coincida con toda la entrada del registro, ya que cada regla se aplica desde el principio hasta el final del registro. -* Ciertos registros pueden producir grandes espacios en blanco. Utiliza `\n` y `\s+` para contabilizar saltos de línea y espacios en blanco. +* Debe definir su regla de parseo para que coincida con toda la entrada de registro, ya que cada regla se aplica desde el principio hasta el final del registro. +* Ciertos registros pueden producir grandes espacios en blanco. Use `\n` y `\s+` para tener en cuenta los saltos de línea y los espacios en blanco. -### Matcher y filtro {#matcher-and-filter} +### Coincidencia y filtro {#matcher-and-filter} -
Las características de parseo Grok disponibles en tiempo de consulta (en el Explorador) admiten un subconjunto limitado de matchers (data, integer, notSpace, number y word) y filtros (number y integer).

-El siguiente conjunto completo de matchers y filtros es específico para tiempo de ingestión funcionalidad del Analizador Grok.
+
Las funciones de parseo Grok disponibles en tiempo de consulta (en el Log Explorer) admiten un subconjunto limitado de coincidencias (datos, entero, sinEspacio, número y palabra) y filtros (número y entero).

+El siguiente conjunto completo de coincidencias y filtros es específico para la funcionalidad del Grok Parser en tiempo de ingesta.
-Aquí hay una lista de todos los matchers y filtros implementados nativamente por Datadog: +Esta es una lista de todas las coincidencias y filtros implementados de forma nativa por Datadog: {{< tabs >}} -{{% tab "Matchers" %}} +{{% tab "Coincidencias" %}} -**Matchers de tiempo de consulta y tiempo de ingestión:** +**Coincidencias en tiempo de consulta y tiempo de ingesta:** -Los siguientes matchers están disponibles tanto para el parseo en tiempo de consulta (explorador) como para el parseo en tiempo de ingestión (Analizador Grok): +Las siguientes coincidencias están disponibles tanto para el parseo en tiempo de consulta (Log Explorer) como para el parseo en tiempo de ingesta (Grok Parser): `word` -: Coincide con una _palabra_, que comienza con un límite de palabra; contiene caracteres de a-z, A-Z, 0-9, incluyendo el `_` (carácter de subrayado); y termina con un límite de palabra. Equivalente a `\b\w+\b` en regex. +: Coincide con una _palabra_, que comienza con un límite de palabra; contiene caracteres de a-z, A-Z, 0-9, incluido el carácter `_` (guion bajo); y termina con un límite de palabra. Equivalente a `\b\w+\b` en regex. `notSpace` : Coincide con cualquier cadena hasta el siguiente espacio. @@ -114,20 +117,20 @@ Los siguientes matchers están disponibles tanto para el parseo en tiempo de con : Coincide con un número entero y lo analiza como un número entero. `data` -: Coincide con cualquier cadena, incluidos espacios y saltos de línea. Equivalente a `.*` en regex. Utilice cuando ninguno de los patrones anteriores sea apropiado. +: Coincide con cualquier cadena, incluyendo espacios y saltos de línea. Equivalente a `.*` en regex. Úselo cuando ninguno de los patrones anteriores sea apropiado. -**Coincidencias solo de tiempo de ingestión:** +**Coincidencias solo durante la ingesta:** -Los siguientes coincidencias solo están disponibles para el parseo de tiempo de ingestión con el procesador Grok Parser y no se pueden usar en el explorador: +Las siguientes coincidencias solo están disponibles para el parseo durante la ingesta con el procesador Grok Parser y no se pueden usar en el Log Explorer: `date("pattern"[, "timezoneId"[, "localeId"]])` -: Coincide con una fecha con el patrón especificado y la analiza para producir un timestamp Unix. [Vea los ejemplos de Matcher de fecha](#parsing-dates). +: Coincide con una fecha con el patrón especificado y la analiza para producir una marca de tiempo Unix. [Consulte los ejemplos del Matcher de fecha](#parsing-dates). `regex("pattern")` -: Coincide con una expresión regular. [Verifique los ejemplos de Matcher de regex](#regex). +: Coincide con una expresión regular. [Verifique los ejemplos del comparador de expresiones regulares](#regex). `boolean("truePattern", "falsePattern")` -: Coincide y analiza un Booleano, definiendo opcionalmente los patrones de verdadero y falso (por defecto son `true` y `false`, ignorando mayúsculas y minúsculas). +: Coincide y analiza un valor booleano, definiendo opcionalmente los patrones verdadero y falso (los valores predeterminados son `true` y `false`, ignorando mayúsculas y minúsculas). `numberStr` : Coincide con un número decimal de punto flotante y lo analiza como una cadena. @@ -163,19 +166,19 @@ Los siguientes coincidencias solo están disponibles para el parseo de tiempo de : Coincide con una dirección MAC. `ipv4` -: Coincide con un IPV4. +: Coincide con una dirección IPv4. `ipv6` -: Coincide con un IPV6. +: Coincide con una dirección IPv6. `ip` : Coincide con una IP (v4 o v6). `hostname` -: Coincide con un nombre de host. +: Coincide con un nombre de servidor. `ipOrHost` -: Coincide con un nombre de host o IP. +: Coincide con un nombre de servidor o una IP. `port` : Coincide con un número de puerto. @@ -183,9 +186,9 @@ Los siguientes coincidencias solo están disponibles para el parseo de tiempo de {{% /tab %}} {{% tab "Filtros" %}} -**Filtros de tiempo de consulta y de tiempo de ingestión:** +**Filtros de tiempo de consulta y tiempo de ingesta:** -Los siguientes filtros están disponibles tanto para el parseo de tiempo de consulta (Explorador de Registros) como para el parseo de tiempo de ingestión (Procesador Grok): +Los siguientes filtros están disponibles tanto para el parseo en tiempo de consulta (Log Explorer) como para el parseo en tiempo de ingesta (Grok Parser): `number` : Analiza una coincidencia como un número de doble precisión. @@ -193,27 +196,27 @@ Los siguientes filtros están disponibles tanto para el parseo de tiempo de cons `integer` : Analiza una coincidencia como un número entero. -**Filtros solo de tiempo de ingestión:** +**Filtros solo para tiempo de ingesta:** -Los siguientes filtros solo están disponibles para el parseo de tiempo de ingestión con el procesador Grok y no se pueden usar en el Explorador de Registros: +Los siguientes filtros solo están disponibles para el parseo en tiempo de ingesta con el procesador Grok Parser y no se pueden usar en el Log Explorer: `boolean` -: Analiza las cadenas 'true' y 'false' como booleanos ignorando mayúsculas y minúsculas. +: Analiza cadenas 'true' y 'false' como booleanos ignorando mayúsculas y minúsculas. `nullIf("value")` : Devuelve nulo si la coincidencia es igual al valor proporcionado. `json` -: Analiza JSON correctamente formateado. +: Analiza JSON con formato correcto. `rubyhash` -: Analiza un hash de Ruby correctamente formateado como `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}` +: Analiza un hash de Ruby con formato correcto como `{name => "John", "job" => {"company" => "Big Company", "title" => "CTO"}}` `useragent([decodeuricomponent:true/false])` -: Analiza un agente de usuario y devuelve un objeto JSON que contiene el dispositivo, el sistema operativo y el navegador representado por el Agente. [Consulta el procesador de Agente de Usuario][1]. +: Analiza un user-agent y devuelve un objeto JSON que contiene el dispositivo, el sistema operativo y el navegador representados por el Agent. [Consulte el procesador de User Agent][1]. `querystring` -: Extrae todos los pares clave-valor en una cadena de consulta de URL que coincida (por ejemplo, `?productId=superproduct&promotionCode=superpromo`). +: Extrae todos los pares clave-valor en una cadena de consulta de URL coincidente (por ejemplo, `?productId=superproduct&promotionCode=superpromo`). `decodeuricomponent` : Decodifica componentes de URI. Por ejemplo, transforma `%2Fservice%2Ftest` en `/service/test`. @@ -225,19 +228,19 @@ Los siguientes filtros solo están disponibles para el parseo de tiempo de inges : Devuelve la cadena en mayúsculas. `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` -: Extrae el patrón de clave-valor y devuelve un objeto JSON. Consulta los [ejemplos de filtro de clave-valor](#key-value-or-logfmt). +: Extrae el patrón de clave-valor y devuelve un objeto JSON. Consulte los [ejemplos de filtro de clave-valor](#key-value-or-logfmt). `xml` -: Analiza XML correctamente formateado. Consulta los [ejemplos de filtro XML](#parsing-xml). +: Analiza XML correctamente formateado. Consulte los [ejemplos de filtro XML](#parsing-xml). `csv(headers[, separator[, quotingcharacter]])` -: Analiza líneas de CSV o TSV correctamente formateadas. Consulta los [ejemplos de filtro CSV](#parsing-csv). +: Analiza líneas de CSV o TSV correctamente formateadas. Consulte los [ejemplos de filtro CSV](#parsing-csv). `scale(factor)` : Multiplica el valor numérico esperado por el factor proporcionado. `array([[openCloseStr, ] separator][, subRuleOrFilter)` -: Parsea una secuencia de cadenas de tokens y la devuelve como un arreglo. Consulta el ejemplo de [lista a array](#list-to-array). +: Realiza el parseo de una secuencia de tokens de cadena y la devuelve como una matriz. Consulte el ejemplo de [lista a arreglo](#list-to-array). `url` : Analiza una URL y devuelve todos los miembros tokenizados (dominio, parámetros de consulta, puerto, etc.) en un objeto JSON. [Más información sobre cómo analizar URLs][2]. @@ -247,35 +250,35 @@ Los siguientes filtros solo están disponibles para el parseo de tiempo de inges {{% /tab %}} {{< /tabs >}} -## Configuraciones avanzadas {#advanced-settings} +## Configuración avanzada {#advanced-settings} -Utiliza la sección de **Configuraciones Avanzadas** al final de tu procesador Grok para analizar un atributo específico en lugar del atributo `message` por defecto, o para definir reglas auxiliares que reutilicen patrones comunes en múltiples reglas de parseo. +Utilice la sección {{< ui >}}Advanced Settings{{< /ui >}} en la parte inferior de su procesador Grok para analizar un atributo específico en lugar del atributo `message` predeterminado, o para definir reglas auxiliares que reutilicen patrones comunes en múltiples reglas de análisis. ### Parseo de un atributo de texto específico {#parsing-a-specific-text-attribute} -Utiliza el campo de **Extraer de** para aplicar tu procesador Grok en un atributo de texto dado en lugar del atributo `message` por defecto. +Utilice el campo {{< ui >}}Extract from{{< /ui >}} para aplicar su procesador Grok a un atributo de texto determinado en lugar del atributo `message` predeterminado. -Por ejemplo, considera un registro que contiene un atributo `command.line` que debe ser parseado como un par clave-valor. Extrae de `command.line` para analizar su contenido y crear atributos estructurados a partir de los datos del comando. +Por ejemplo, considere un registro que contiene un atributo `command.line` que debe analizarse como clave-valor. Extraiga de `command.line` para realizar el parseo de su contenido y crear atributos estructurados a partir de los datos del comando. -{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="Configuraciones Avanzadas con ejemplo de Extraer del atributo command.line" style="width:80%;">}} +{{< img src="/logs/processing/parsing/grok_advanced_settings_extract.png" alt="Configuración avanzada con el ejemplo del atributo Extract from command.line" style="width:80%;">}} ### Uso de reglas auxiliares para reutilizar patrones comunes {#using-helper-rules-to-reuse-common-patterns} -Utiliza el campo de **Reglas Auxiliares** para definir tokens para tus reglas de parseo. Las reglas auxiliares te permiten reutilizar patrones comunes de Grok en tus reglas de análisis. Esto es útil cuando tienes varias reglas en el mismo procesador Grok que utilizan los mismos tokens. +Utilice el campo {{< ui >}}Helper Rules{{< /ui >}} para definir tokens para sus reglas de parseo. Las reglas auxiliares le permiten reutilizar patrones Grok comunes en sus reglas de parseo. Esto es útil cuando tiene varias reglas en el mismo analizador Grok que utilizan los mismos tokens. -Ejemplo de un registro no estructurado clásico: +Ejemplo para un registro clásico no estructurado: ```text john id:12345 connected on 11/08/2017 on server XYZ in production ``` -Utiliza la siguiente regla de parseo: +Utilice la siguiente regla de parseo: ```text MyParsingRule %{user} %{connection} %{server} ``` -Con los siguientes auxiliares: +Con los siguientes ayudantes: ```text user %{word:user.name} id:%{integer:user.id} @@ -292,22 +295,22 @@ Algunos ejemplos que demuestran cómo usar analizadores: * [Patrones alternos](#alternating-pattern) * [Atributo opcional](#optional-attribute) * [JSON anidado](#nested-json) -* [Expresiones regulares](#regex) -* [Lista y arrays](#list-to-array) +* [Regex](#regex) +* [Listas y arreglos](#list-to-array) * [ Formato Glog](#glog-format) * [XML](#parsing-xml) * [CSV](#parsing-csv) ### Clave-valor o logfmt {#key-value-or-logfmt} -Este es el filtro central de clave-valor: `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` donde: +Este es el filtro principal de clave-valor: `keyvalue([separatorStr[, characterAllowList[, quotingStr[, delimiter]]]])` donde: -* `separatorStr`: define el separador entre clave y valores. Por defecto es `=`. -* `characterAllowList`: define caracteres de valor adicionales no escapados además del valor por defecto `\\w.\\-_@`. Se usa solo para valores no entrecomillados (por ejemplo, `key=@valueStr`). -* `quotingStr`: define comillas, reemplazando la detección de comillas por defecto: `<>`, `""`, `''`. -* `delimiter`: define el separador entre los diferentes pares de clave-valor (por ejemplo, `|` es el delimitador en `key1=value1|key2=value2`). Por defecto es ` ` (espacio normal), `,` y `;`. +* `separatorStr`: define el separador entre claves y valores. El valor predeterminado es `=`. +* `characterAllowList`: define caracteres de valor adicionales sin escape además del `\\w.\\-_@` predeterminado. Se utiliza solo para valores sin comillas (por ejemplo, `key=@valueStr`). +* `quotingStr`: define comillas, reemplazando la detección de comillas predeterminada: `<>`, `""`, `''`. +* `delimiter`: define el separador entre los diferentes pares de clave-valor (por ejemplo, `|` es el delimitador en `key1=value1|key2=value2`). El valor predeterminado es ` ` (espacio normal), `,` y `;`. -Usa filtros como **keyvalue** para mapear más fácilmente cadenas a atributos para formatos de clave-valor o logfmt: +Utilice filtros como `keyvalue` para asignar cadenas a atributos de forma más sencilla para formatos keyvalue o logfmt: **Registro:** @@ -321,8 +324,8 @@ user=john connect_date=11/08/2017 id=123 action=click rule %{data::keyvalue} ``` -No es necesario especificar el nombre de tus parámetros ya que ya están contenidos en el registro. -Si agregas un atributo **extract**`my_attribute` en tu patrón de regla, verás: +No necesita especificar el nombre de sus parámetros, ya que estos ya están contenidos en el registro. +Si agrega un atributo **extract** `my_attribute` en su patrón de regla, verá: ```json { @@ -334,7 +337,7 @@ Si agregas un atributo **extract**`my_attribute` en tu patrón de regla, verás: } ``` -Si `=` no es el separador predeterminado entre tu clave y valores, agrega un parámetro en tu regla de parseo con un separador. +Si `=` no es el separador predeterminado entre su clave y sus valores, agregue un parámetro en su regla de parseo con un separador. **Registro:** @@ -348,7 +351,7 @@ user: john connect_date: 11/08/2017 id: 123 action: click rule %{data::keyvalue(": ")} ``` -Si los registros contienen caracteres especiales en un valor de atributo, como `/` en una URL, agrégalo a la lista de permitidos en la regla de parseo: +Si los registros contienen caracteres especiales en el valor de un atributo, como `/` en una URL por ejemplo, agréguelo a la lista de permitidos en la regla de parseo: **Registro:** @@ -364,20 +367,20 @@ rule %{data::keyvalue("=","/:")} Otros ejemplos: -| **Cadena cruda** | **Regla de parseo** | **Resultado** | +| **Cadena sin procesar** | **Regla de parseo** | **Resultado** | |:-----------------------------|:------------------------------------------------------|:--------------------------------------| -| clave=valorStr | `%{data::keyvalue}` | {"clave": "valorStr"} | -| clave=\ | `%{data::keyvalue}` | {"clave": "valorStr"} | -| "clave"="valorStr" | `%{data::keyvalue}` | {"clave": "valorStr"} | -| clave:valorStr | `%{data::keyvalue(":")}` | {"clave": "valorStr"} | -| clave:"/valorStr" | `%{data::keyvalue(":", "/")}` | {"clave": "/valorStr"} | -| /clave:/valorStr | `%{data::keyvalue(":", "/")}` | {"/clave": "/valorStr"} | -| clave:={valorStr} | `%{data::keyvalue(":=", "", "{}")}` | {"clave": "valorStr"} | -| clave1=valor1\|clave2=valor2 | %{data::keyvalue("=", "", "", "|")} | {"clave1": "valor1", "clave2": "valor2"} | -| clave1="valor1"\|clave2="valor2" | %{data::keyvalue("=", "", "", "|")} | {"clave1": "valor1", "clave2": "valor2"} | - -**Ejemplo de cadena con múltiples comillas**: Cuando se definen múltiples cadenas entre comillas, el comportamiento predeterminado se reemplaza por un carácter de comillas definido. -La clave-valor siempre coincide con las entradas sin ningún carácter de comillas, independientemente de lo que se especifique en `quotingStr`. Cuando se utilizan caracteres de comillas, se ignora el `characterAllowList` ya que todo lo que está entre los caracteres de comillas se extrae. +| key=valueStr | `%{data::keyvalue}` | {\"key\": \"valueStr\"} | +| key=\\ | `%{data::keyvalue}` | {\"key\": \"valueStr\"} | +| \"key\"=\"valueStr\" | `%{data::keyvalue}` | {\"key\": \"valueStr\"} | +| key:valueStr | `%{data::keyvalue(":")}` | {\"key\": \"valueStr\"} | +| key:\"/valueStr\" | `%{data::keyvalue(":", "/")}` | {\"key\": \"/valueStr\"} | +| /key:/valueStr | `%{data::keyvalue(":", "/")}` | {\"/key\": \"/valueStr\"} | +| key:={valueStr} | `%{data::keyvalue(":=", "", "{}")}` | {\"key\": \"valueStr\"} | +| key1=value1\\|key2=value2 | %{data::keyvalue("=", "", "", "|")} | {\"key1\": \"value1\", \"key2\": \"value2\"} | +| key1=\"value1\"\\|key2=\"value2\" | %{data::keyvalue("=", "", "", "|")} | {\"key1\": \"value1\", \"key2\": \"value2\"} | + +**Ejemplo de Multiple QuotingString**: Cuando se definen múltiples cadenas de comillas, el comportamiento predeterminado se reemplaza por un carácter de comillas definido. +El par clave-valor siempre coincide con las entradas sin ningún carácter de comillas, independientemente de lo que se especifique en `quotingStr`. Cuando se utilizan caracteres de comillas, se ignora `characterAllowList` ya que se extrae todo lo que se encuentra entre los caracteres de comillas. **Registro:** @@ -399,43 +402,43 @@ La clave-valor siempre coincide con las entradas sin ningún carácter de comill **Nota**: -* Los valores vacíos (`key=`) o los valores `null` (`key=null`) no se muestran en el JSON de salida. -* Si defines un filtro de *keyvalue* en un `data` objeto, y este filtro no coincide, entonces se devuelve un JSON vacío `{}` (por ejemplo, entrada: `key:=valueStr`, regla de parseo: `rule_test %{data::keyvalue("=")}`, salida: `{}`). +* Los valores vacíos (`key=`) o `null` (`key=null`) no se muestran en el JSON de salida. +* Si define un filtro *keyvalue* en un objeto `data`, y este filtro no coincide, entonces se devuelve un JSON `{}` vacío (por ejemplo, entrada: `key:=valueStr`, regla de parseo: `rule_test %{data::keyvalue("=")}`, salida: `{}`). * Definir `""` como `quotingStr` mantiene la configuración predeterminada para las comillas. ### Parseo de fechas {#parsing-dates} -El comparador de fechas transforma tu marca de tiempo en el formato EPOCH (unidad de medida **milisegundo**). +El comparador de fechas transforma su marca de tiempo al formato EPOCH (unidad de medida **milisegundo**). -| **Cadena cruda** | **Regla de parseo** | **Resultado** | +| **Cadena sin procesar** | **Regla de parseo** | **Resultado** | |:-------------------------------------|:----------------------------------------------------------|:------------------------| -| 14:20:15 | `%{date("HH:mm:ss"):date}` | {"date": 51615000} | -| 02:20:15 PM | `%{date("hh:mm:ss a"):date}` | {"date": 51615000} | -| 11/10/2014 | `%{date("dd/MM/yyyy"):date}` | {"date": 1412978400000} | -| Jue Jun 16 08:29:03 2016 | `%{date("EEE MMM dd HH:mm:ss yyyy"):date}` | {"date": 1466065743000} | -| Mar Nov 1 08:29:03 2016 | `%{date("EEE MMM d HH:mm:ss yyyy"):date}` | {"date": 1466065743000} | -| 06/Mar/2013:01:36:30 +0900 | `%{date("dd/MMM/yyyy:HH:mm:ss Z"):date}` | {"date": 1362501390000} | -| 2016-11-29T16:21:36.431+0000 | `%{date("yyyy-MM-dd'T'HH:mm:ss.SSSZ"):date}` | {"date": 1480436496431} | -| 2016-11-29T16:21:36.431+00:00 | `%{date("yyyy-MM-dd'T'HH:mm:ss.SSSZZ"):date}` | {"date": 1480436496431} | -| 06/Feb/2009:12:14:14.655 | `%{date("dd/MMM/yyyy:HH:mm:ss.SSS"):date}` | {"date": 1233922454655} | -| 2007-08-31 19:22:22.427 ADT | `%{date("yyyy-MM-dd HH:mm:ss.SSS z"):date}` | {"date": 1188598942427} | -| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","Europe/Paris"):date}` | {"date": 1466058543000} | -| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","UTC+5"):date}` | {"date": 1466047743000} | -| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","+3"):date}` | {"date": 1466054943000} | - -1 Utiliza el `timezone` parámetro si realizas tus propias localizaciones y tus marcas de tiempo _no_ están en UTC. -El formato soportado para zonas horarias es: +| 14:20:15 | `%{date("HH:mm:ss"):date}` | {\"date\": 51615000} | +| 02:20:15 PM | `%{date("hh:mm:ss a"):date}` | {\"date\": 51615000} | +| 11/10/2014 | `%{date("dd/MM/yyyy"):date}` | {\"date\": 1412978400000} | +| Thu Jun 16 08:29:03 2016 | `%{date("EEE MMM dd HH:mm:ss yyyy"):date}` | {\"date\": 1466065743000} | +| Tue Nov 1 08:29:03 2016 | `%{date("EEE MMM d HH:mm:ss yyyy"):date}` | {\"date\": 1466065743000} | +| 06/Mar/2013:01:36:30 +0900 | `%{date("dd/MMM/yyyy:HH:mm:ss Z"):date}` | {\"date\": 1362501390000} | +| 2016-11-29T16:21:36.431+0000 | `%{date("yyyy-MM-dd'T'HH:mm:ss.SSSZ"):date}` | {\"date\": 1480436496431} | +| 2016-11-29T16:21:36.431+00:00 | `%{date("yyyy-MM-dd'T'HH:mm:ss.SSSZZ"):date}` | {\"date\": 1480436496431} | +| 06/Feb/2009:12:14:14.655 | `%{date("dd/MMM/yyyy:HH:mm:ss.SSS"):date}` | {\"date\": 1233922454655} | +| 2007-08-31 19:22:22.427 ADT | `%{date("yyyy-MM-dd HH:mm:ss.SSS z"):date}` | {\"date\": 1188598942427} | +| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","Europe/Paris"):date}` | {\"date\": 1466058543000} | +| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","UTC+5"):date}` | {\"date\": 1466047743000} | +| Jue Jun 16 08:29:03 20161 | `%{date("EEE MMM dd HH:mm:ss yyyy","+3"):date}` | {\"date\": 1466054943000} | + +1Utilice el parámetro `timezone` si realiza sus propias localizaciones y sus marcas de tiempo _no_ están en UTC. +El formato admitido para las zonas horarias es: * `GMT`, `UTC`, `UT` o `Z` -* `+hh:mm`, `-hh:mm`, `+hhmm`, `-hhmm`. El rango máximo soportado es de +18:00 a -18:00 inclusive. -* Zonas horarias que comienzan con `UTC+`, `UTC-`, `GMT+`, `GMT-`, `UT+` o `UT-`. El rango máximo soportado es de +18:00 a -18:00 inclusive. -* IDs de zona horaria extraídos de la base de datos TZ. Para más información, consulte [nombres de la base de datos TZ][2]. +* `+hh:mm`, `-hh:mm`, `+hhmm`, `-hhmm`. El rango máximo admitido es de +18:00 a -18:00 inclusive. +* Zonas horarias que comienzan con `UTC+`, `UTC-`, `GMT+`, `GMT-`, `UT+` o `UT-`. El rango máximo admitido es de +18:00 a -18:00 inclusive. +* IDs de zona horaria extraídos de la base de datos TZ. Para obtener más información, consulte [TZ database names][2]. -**Nota**: El parseo de una fecha **no** establece su valor como la fecha oficial del registro. Para esto, utiliza el [Remapeador de Fecha de Registro][3] en un procesador posterior. +**Nota**: El parseo de una fecha **no** establece su valor como la fecha oficial del registro. Para esto, utilice el [Log Date Remapper][3] en un procesador posterior. -### Patrón alternante {#alternating-pattern} +### Patrón alterno {#alternating-pattern} -Si tiene registros con dos formatos posibles que difieren en solo un atributo, establezca una única regla utilizando alternancia con `(|)`. Esta regla es equivalente a un operador booleano OR. +Si tiene registros con dos formatos posibles que difieren solo en un atributo, establezca una única regla usando alternancia con `(|)`. Esta regla es equivalente a un OR booleano. **Registro**: @@ -445,7 +448,7 @@ john connected on 11/08/2017 ``` **Regla**: -Tenga en cuenta que "id" es un entero y no una cadena. +Tenga en cuenta que "id" es un número entero y no una cadena. ```text MyParsingRule (%{integer:user.id}|%{word:user.firstname}) connected on %{date("MM/dd/yyyy"):connect_date} @@ -518,7 +521,7 @@ MyParsingRule %{word:user.firstname} (%{integer:user.id} )?connected on %{date(" ### JSON anidado {#nested-json} -Utilice el filtro `json` para analizar un objeto JSON anidado después de un prefijo de texto sin procesar: +Use el filtro `json` para analizar un objeto JSON anidado después de un prefijo de texto sin formato: **Registro**: @@ -541,7 +544,12 @@ parsing_rule %{date("MMM dd HH:mm:ss"):timestamp} %{word:vm} %{word:app}\[%{numb "app": "program", "logger": { "thread_id": 123 - } + }, + "server": "server.1", + "method": "GET", + "status_code": 200, + "url": "https://app.datadoghq.com/logs/pipelines", + "duration": 123456 } ``` @@ -570,9 +578,9 @@ MyParsingRule %{regex("[a-z]*"):user.firstname}_%{regex("[a-zA-Z0-9]*"):user.id} } ``` -### Lista a array {#list-to-array} +### Lista a matriz {#list-to-array} -Utilice el filtro `array([[openCloseStr, ] separator][, subRuleOrFilter)` para extraer una lista en un array en un solo atributo. El `subRuleOrFilter` es opcional y acepta estos [filtros][4]. +Use el filtro `array([[openCloseStr, ] separator][, subRuleOrFilter)` para extraer una lista en una matriz en un solo atributo. El `subRuleOrFilter` es opcional y acepta estos [filtros][4]. **Registro**: @@ -617,9 +625,9 @@ myParsingRule Users %{data:users:array("{}","-")} have been added to the databas myParsingRule Users %{data:users:array("{}","-", uppercase)} have been added to the database ``` -### Formato Glog {#glog-format} +### Glog format {#glog-format} -Los componentes de Kubernetes a veces registran en el formato `glog`; este ejemplo es del elemento Kube Scheduler en la Biblioteca de canalización. +Los componentes de Kubernetes a veces generan registros en el formato `glog`; este ejemplo proviene del elemento Kube Scheduler en la Biblioteca de canalizaciones. Línea de registro de ejemplo: @@ -648,9 +656,9 @@ Y JSON extraído: } ``` -### Parseo XML {#parsing-xml} +### Parseo de XML {#parsing-xml} -El analizador XML transforma mensajes en formato XML a JSON. +El analizador XML transforma los mensajes con formato XML en JSON. **Registro:** @@ -687,24 +695,24 @@ rule %{data::xml} **Notas**: * Si el XML contiene etiquetas que tienen tanto un atributo como un valor de cadena entre las dos etiquetas, se genera un atributo `value`. Por ejemplo: `Harry Potter` se convierte en `{"title": {"lang": "en", "value": "Harry Potter" } }` -* Las etiquetas repetidas se convierten automáticamente en arrays. Por ejemplo: `Harry PotterEveryday Italian` se convierte en `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }` +* Las etiquetas repetidas se convierten automáticamente en matrices. Por ejemplo: `Harry PotterEveryday Italian` se convierte en `{ "bookstore": { "book": [ "Harry Potter", "Everyday Italian" ] } }` -### Parseo CSV {#parsing-csv} +### Parseo de CSV {#parsing-csv} -Utilice el filtro **CSV** para mapear más fácilmente cadenas a atributos cuando están separadas por un carácter dado (`,` por defecto). +Utilice el filtro `csv` para asignar cadenas a atributos con mayor facilidad cuando estén separados por un carácter determinado (`,` de forma predeterminada). El filtro CSV se define como `csv(headers[, separator[, quotingcharacter]])` donde: -* `headers`: Define los nombres de las claves separados por `,`. Los nombres de las claves deben comenzar con un carácter alfabético y pueden contener cualquier carácter alfanumérico además de `_`. -* `separator`: Define los separadores utilizados para separar los diferentes valores. Solo se acepta un carácter. Predeterminado: `,`. **Nota**: Utilice `tab` para el `separator` para representar el carácter de tabulación para TSVs. -* `quotingcharacter`: Define el carácter de comillas. Solo se acepta un carácter. Predeterminado: `"` +* `headers`: Define el nombre de las claves separado por `,`. Los nombres de las claves deben comenzar con un carácter alfabético y pueden contener cualquier carácter alfanumérico además de `_`. +* `separator`: Define los separadores utilizados para separar los diferentes valores. Solo se acepta un carácter. Predeterminado: `,`. **Nota**: Utilice `tab` para el `separator` para representar el carácter de tabulación para TSV. +* `quotingcharacter`: Define el carácter de comilla. Solo se acepta un carácter. Predeterminado: `"` **Nota**: * Los valores que contienen un carácter separador deben estar entre comillas. -* Los valores entre comillas que contienen un carácter de comillas deben ser escapados con caracteres de comillas. Por ejemplo, `""` dentro de un valor entre comillas representa `"`. -* Si el registro no contiene el mismo número de valores que el número de claves en el encabezado, el analizador CSV emparejará los primeros. -* Los enteros y dobles se convierten automáticamente si es posible. +* Los valores entre comillas que contengan un carácter de comilla deben escaparse con caracteres de comilla. Por ejemplo, `""` dentro de un valor entre comillas representa `"`. +* Si el registro no contiene el mismo número de valores que el número de claves en el encabezado, el analizador CSV coincidirá con los primeros. +* Los números enteros y dobles se convierten automáticamente si es posible. **Registro**: @@ -734,20 +742,20 @@ myParsingRule %{data:user:csv("first_name,name,st_nb,st_name,city")} Otros ejemplos: -| **Cadena cruda** | **Regla de parseo** | **Resultado** | +| **Cadena sin procesar** | **Regla de parseo** | **Resultado** | |:-----------------------------|:-------------------------------------------------------------------------|:------------------------------------------------| -| `John,Doe` | `%{data::csv("firstname,name")}` | {"firstname": "John", "name":"Doe"} | -| `"John ""Da Man""",Doe` | `%{data::csv("firstname,name")}` | {"firstname": "John \"Da Man\"", "name":"Doe"} | -| `'John ''Da Man''',Doe` | `%{data::csv("firstname,name",",","'")}` | {"firstname": "John 'Da Man'", "name":"Doe"} | -| John|Doe | %{data::csv("firstname,name","|")} | {"firstname": "John", "name":"Doe"} | -| `value1,value2,value3` | `%{data::csv("key1,key2")}` | {"key1": "value1", "key2":"value2"} | -| `value1,value2` | `%{data::csv("key1,key2,key3")}` | {"key1": "value1", "key2":"value2"} | -| `value1,,value3` | `%{data::csv("key1,key2,key3")}` | {"key1": "value1", "key3":"value3"} | -| Value1    Value2    Value3 (TSV) | `%{data::csv("key1,key2,key3","tab")}` | {"key1": "value1", "key2": "value2", "key3":"value3"} | +| `John,Doe` | `%{data::csv("firstname,name")}` | {\"firstname\": \"John\", \"name\":\"Doe\"} | +| `"John ""Da Man""",Doe` | `%{data::csv("firstname,name")}` | {\"firstname\": \"John \\\"Da Man\\\"\", \"name\":\"Doe\"} | +| `'John ''Da Man''',Doe` | `%{data::csv("firstname,name",",","'")}` | {\"firstname\": \"John 'Da Man'\", \"name\":\"Doe\"} | +| John|Doe | %{data::csv("firstname,name","|")} | {\"firstname\": \"John\", \"name\":\"Doe\"} | +| `value1,value2,value3` | `%{data::csv("key1,key2")}` | {\"key1\": \"value1\", \"key2\":\"value2\"} | +| `value1,value2` | `%{data::csv("key1,key2,key3")}` | {\"key1\": \"value1\", \"key2\":\"value2\"} | +| `value1,,value3` | `%{data::csv("key1,key2,key3")}` | {\"key1\": \"value1\", \"key3\":\"value3\"} | +| Value1    Value2    Value3 (TSV) | `%{data::csv("key1,key2,key3","tab")}` | {\"key1\": \"value1\", \"key2\": \"value2\", \"key3\":\"value3\"} | ### Utilice el comparador de datos para descartar texto innecesario {#use-data-matcher-to-discard-unneeded-text} -Si tiene un registro donde, después de haber parseado lo necesario, y sabiendo que el texto posterior es seguro para descartar, puede usar el comparador de datos para ello. Para el siguiente ejemplo de registro, puede usar el `data` comparador para descartar el `%` al final. +Si tiene un registro donde, después de haber hecho el parseo necesario y saber que el texto después de ese punto es seguro descartarlo, puede utilizar el comparador de datos para hacerlo. Para el siguiente ejemplo de registro, puede utilizar el comparador `data` para descartar el `%` al final. **Registro**: @@ -772,9 +780,9 @@ MyParsingRule Usage\:\s+%{number:usage}%{data:ignore} ### Caracteres de control ASCII {#ascii-control-characters} -Si sus registros contienen caracteres de control ASCII, se serializan al ser ingeridos. Estos pueden ser manejados escapando explícitamente el valor serializado dentro de su analizador grok. +Si sus registros contienen caracteres de control ASCII, estos se serializan al momento de la ingesta. Estos pueden manejarse escapando explícitamente el valor serializado dentro de su analizador grok. -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/monitors/status/events.md b/hugo/content/es/monitors/status/events.md index 06b699f819b..48b10ecd7b0 100644 --- a/hugo/content/es/monitors/status/events.md +++ b/hugo/content/es/monitors/status/events.md @@ -1,71 +1,72 @@ --- +description: Visualice y administre los eventos del monitor en la página de estado, + incluyendo acciones rápidas, detalles del evento y herramientas de solución de problemas. further_reading: - link: events/ tag: Documentación - text: Gestión de eventos -title: Status Events + text: Event Management +title: Eventos de Estado --- +
Eventos de Estado es parte de la Página de Estado del Monitor provisional. Si está utilizando la página de estado heredada, consulte la documentación de Página de estado (heredada).
-
Status Events forma parte de la página de Monitor Status provisional. Si utilizas la página de estado legacy, consulta la documentación de la página de estado (legacy).
+## Descripción general {#overview} -## Información general +{{< img src="/monitors/status/status_page_event_details.png" alt="Página de Estado del Monitor que muestra los detalles del evento" style="width:100%;" >}} -{{< img src="/monitors/status/status_page_event_details.png" alt="Página de Monitor Status que muestra detalles de eventos" style="width:100%;" >}} +Todos los eventos generados por su monitor aparecen en la Página de Estado del Monitor, mostrando el nombre de los grupos, el tipo de evento y la marca de tiempo. La línea de tiempo de eventos también incluye eventos de tiempo de inactividad y de registro de auditoría. -Todos los eventos generados por tu monitor aparecen en la página de estado del monitor y muestran el nombre del grupo, el tipo de evento, la fecha y la hora. La línea de tiempo del evento también incluye eventos de tiempo de inactividad y de Audit Trail. +Para cada evento, puede acceder a acciones rápidas y visualizar activos relacionados, como tableros y registros. -Para cada evento, puedes acceder a acciones rápidas y ver recursos relacionados, como dashboards y logs. +## Sección de detalles del evento {#event-details-section} -## Sección de detalles de eventos +Para explorar cada evento individual y obtener más información, incluyendo etiquetas y acciones asociadas: -Para obtener más información sobre cada evento individual, incluyendo las etiquetas (tags) y las acciones asociadas: +1. Desde la página de estado del monitor, desplácese hacia abajo hasta {{< ui >}}Event timeline{{< /ui >}}. +2. Haga clic en un evento en la línea de tiempo para visualizar los detalles del evento. -1. En la página de estado del monitor, desplázate a **Línea de tiempo del evento**. -2. Haz clic en un evento en la línea de tiempo para ver los detalles del evento. +Utilice los detalles del evento para comprender las alertas del monitor, e identificar las causas raíz. Esta información respalda los flujos de trabajo de los respondedores y le ayuda a mantenerse informado sobre las situaciones en curso. -Utiliza los detalles del evento para comprender las alertas del monitor e identificar las causas de origen. Esta información respalda los flujos de trabajo de respuesta y te ayuda a mantenerte al tanto de las situaciones en curso. +### Tome medidas para remediar {#take-action-to-remediate} -### Tomar medidas correctivas - -Con Quick Actions, puedes tomar medidas sin salir de la página de estado. El personal de respuesta ahorra tiempo, ya que el contexto se añade automáticamente. +Con las Acciones rápidas, puede tomar medidas sin salir de la página de estado. Los respondedores ahorran tiempo ya que el contexto se agrega automáticamente. | Acción | Descripción | | :---- | :---- | -| Silenciar | Crea un [tiempo de inactividad][1] para silenciar las alertas de monitor. | -| Resolver | Define temporalmente el estado del monitor como `OK` hasta su próxima evaluación. | -| Declarar un incidente | Escala las alertas de monitor con [Gestión de incidentes][2]. | -| Crear un caso | Crea un [caso][3] para seguir la investigación de esta alerta sin salir de Datadog. | -| Ejecutar un flujo de trabajo | Ejecuta [Workflow][4] Automation con fragmentos predefinidos para realizar acciones de mitigación. | +| {{< ui >}}Mute{{< /ui >}} | Cree un [tiempo de inactividad][1] para silenciar las alertas del monitor. | +| {{< ui >}}Resolve{{< /ui >}} | Establezca temporalmente el estado del monitor en `OK` hasta su próxima evaluación. | +| {{< ui >}}Declare Incident{{< /ui >}} | Escale las alertas del monitor con [Incident Management][2]. | +| {{< ui >}}Create Work Item{{< /ui >}} | Cree un [elemento de trabajo][3] para realizar un seguimiento de esta investigación de alerta sin salir de Datadog. | +| {{< ui >}}Run Workflow{{< /ui >}} | Ejecute la automatización de [Flujo de trabajo][4] con fragmentos predefinidos para ejecutar acciones de mitigación. | -### Resolver +### Resolver {#resolve} -Puedes resolver una alerta de monitor desde el [encabezado][5] de la página de estado o desde la sección de detalles del evento. La resolución desde la sección de detalles del evento sólo afecta al grupo relacionado con el evento seleccionado, mientras que la resolución desde el encabezado resuelve todos los grupos de la alerta y define el estado del monitor como `OK` (todos los grupos). +Puede resolver una alerta de monitor desde la página de estado [Header][5] o las secciones de detalles del evento. La resolución desde la sección de detalles del evento solo afecta al grupo relacionado con el evento seleccionado, mientras que la resolución desde el Header resuelve todos los grupos en la alerta y establece el estado del monitor en `OK` (todos los grupos). -Si un monitor alerta porque sus datos actuales corresponden al estado de la `ALERT`, el uso de `resolve` hará que el estado cambie temporalmente de `ALERT` a `OK`, y luego de nuevo a `ALERT`. Por lo tanto, `resolve` no sirve para aceptar la alerta ni para indicar a Datadog que la ignore. +Si un monitor está alertando debido a que sus datos actuales corresponden al estado `ALERT`, el uso de `resolve` hará que el estado cambie temporalmente de `ALERT` a `OK`, y luego vuelva a `ALERT`. Por lo tanto, `resolve` no está destinado a reconocer la alerta ni a indicar a Datadog que la ignore. -Resolver manualmente un monitor es útil cuando los datos se comunican de forma intermitente. Por ejemplo, después de que se activa una alerta, el monitor puede dejar de recibir datos, lo que le impide evaluar las condiciones de alerta y recuperar el estado `OK`. En tales casos, la función `resolve` o `Automatically resolve monitor after X hours` cambian el monitor de nuevo a un estado `OK`. +Resolver manualmente un monitor es útil cuando los datos se reportan de forma intermitente. Por ejemplo, después de que se activa una alerta, el monitor puede dejar de recibir datos, lo que impide que evalúe las condiciones de alerta y se recupere al estado `OK`. En tales casos, la función `resolve` o {{< ui >}}Automatically resolve monitor after X hours{{< /ui >}} cambia el monitor de nuevo a un estado `OK`. -**Caso de uso típico**: monitor basado en métricas de errores que no se generan cuando no hay errores (`aws.elb.httpcode_elb_5xx` o cualquier contador DogStatsD en tu código informando sobre un error _sólo cuando hay un error_). +**Caso de uso típico**: un monitor basado en métricas de error que no se generan cuando no hay errores (`aws.elb.httpcode_elb_5xx`, o cualquier contador de DogStatsD en su código que reporte un error _solo cuando hay un error_). -## Sección de resolución de problemas en eventos +## Sección de solución de problemas de eventos {#event-troubleshooting-section} -{{< img src="/monitors/status/events/event_troubleshooting.png" alt="Resolución de problemas en eventos con un ejemplo de mapa de dependencias" style="width:100%;" >}} +{{< img src="/monitors/status/events/event_troubleshooting.png" alt="Solución de problemas de eventos con un mapa de dependencias de ejemplo" style="width:100%;" >}} -Para cada evento, accede a la información de resolución de problemas para ayudar al personal de respuesta a comprender rápidamente el contexto de la alerta. +Para cada evento, acceda a la información de solución de problemas para ayudar a los respondedores a comprender rápidamente el contexto de la alerta. -| Componente para la resolución de problemas | Descripción | +| Componente de solución de problemas | Descripción | | --- | ----------- | -| Mapa de dependencias | Cuando una etiqueta de servicio está disponible, ya sea como etiqueta de monitor o en el grupo, puedes acceder a un mapa de dependencias que muestre el estado de tus dependencias. | -| Seguimiento de cambios | Cuando una etiqueta de servicio está disponible, ya sea como etiqueta de monitor o en el grupo, puedes acceder a una lista de cambios relevantes de tu servicio y sus dependencias. Para obtener más detalles sobre los tipos específicos de cambios admitidos y los requisitos de configuración, consulta la documentación [Seguimiento de cambios][6]. | +| {{< ui >}}Dependency Map{{< /ui >}} | Cuando una etiqueta de servicio está disponible, ya sea como etiqueta de monitor o en el grupo, puede acceder a un mapa de dependencias que muestra el estado de sus dependencias. | +| {{< ui >}}Change Tracking{{< /ui >}} | Cuando una etiqueta de servicio está disponible, ya sea como etiqueta de monitor o en el grupo, puede acceder a una lista de cambios relevantes en su servicio y sus dependencias. Para obtener detalles sobre tipos específicos de cambios admitidos y requisitos de configuración, consulte la documentación de [Change Tracking][6]. | -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /es/monitors/downtimes/?tab=bymonitorname -[2]: /es/service_management/incident_management/ -[3]: /es/service_management/case_management/ -[4]: /es/service_management/workflows/trigger/#trigger-a-workflow-from-a-monitor +[2]: /es/incident_response/incident_management/ +[3]: /es/incident_response/work_management/ +[4]: /es/actions/workflows/trigger/#trigger-a-workflow-from-a-monitor [5]: /es/monitors/status/status_page/#header [6]: /es/change_tracking \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/destinations/datadog_byoc_logs.md b/hugo/content/es/observability_pipelines/destinations/datadog_byoc_logs.md new file mode 100644 index 00000000000..b9e3bd1caaa --- /dev/null +++ b/hugo/content/es/observability_pipelines/destinations/datadog_byoc_logs.md @@ -0,0 +1,86 @@ +--- +aliases: +- /es/observability_pipelines/destinations/cloudprem/ +description: Aprenda a enviar logs a Datadog BYOC (Bring Your Own Cloud) Logs utilizando + el Observability Pipelines Worker. +disable_toc: false +products: +- icon: logs + name: Registros + url: /observability_pipelines/configuration/?tab=logs#pipeline-types +title: Destino de Datadog BYOC Logs +--- +{{< product-availability >}} + +## Descripción general {#overview} + +Utilice el destino de logs BYOC (Bring Your Own Cloud) de Observability Pipelines para enviar logs a Datadog BYOC Logs. + + +## Requisitos previos {#prerequisites} + +Antes de configurar el destino, necesita implementar un clúster de BYOC Logs. Aprenda a instalarlo en la [sección de instalación de BYOC Logs][3]. + +## Configuración {#setup} + +Configure el destino de BYOC Logs cuando [configure un pipeline][4]. Puede configurar una canalización en la [interfaz de usuario][1], utilizando la [API][5] o con [Terraform][6]. Los pasos de esta sección se configuran en la interfaz de usuario. + +### Almacenamiento en búfer opcional {#optional-buffering} + +Después de seleccionar el destino de BYOC Logs en la interfaz de usuario del pipeline, puede configurar el almacenamiento en búfer. + +{{% observability_pipelines/destination_buffer %}} + +{{< img src="observability_pipelines/destinations/cloudprem_settings.png" alt="La configuración del destino de BYOC Logs" style="width:35%;" >}} + +## Valores predeterminados de Secret {#secret-defaults} + +{{% observability_pipelines/set_secrets_intro %}} + +{{< tabs >}} +{{% tab "Gestión de secretos" %}} + +- Identificador de URL del punto de conexión de BYOC Logs: + - Hace referencia al punto de conexión de ingesta al que Observability Pipelines envía los logs. + - En su gestor de secretos: + - Defina la URL del clúster, como `http://byoc-logs.acme.internal:7280`. **Nota**: La URL debe incluir el puerto. + - El Worker añade `/api/v2/logs` y `/api/v1/validate` a la URL del punto de conexión, por lo que estos puntos de conexión deben estar permitidos si utiliza reglas de reenvío o de firewall. + - El identificador predeterminado es `DESTINATION_CLOUDPREM_ENDPOINT_URL`. + +{{% /tab %}} + +{{% tab "Variables de entorno" %}} + +{{< img src="observability_pipelines/destinations/cloudprem_env_vars.png" alt="La página de instalación que muestra el campo de variable de entorno de BYOC Logs" style="width:75%;" >}} + +- URL del punto de conexión de BYOC Logs + - Observability Pipelines envía logs al punto de conexión de ingesta de BYOC Logs. Defina la URL del clúster, como `http://byoc-logs.acme.internal:7280`. **Nota**: La URL debe incluir el puerto. + - El Worker añade `/api/v2/logs` y `/api/v1/validate` a la URL del punto de conexión, por lo que estos puntos de conexión deben estar permitidos si utiliza reglas de reenvío o de firewall. + - Almacenado como la variable de entorno: `DD_OP_DESTINATION_CLOUDPREM_ENDPOINT_URL`. + +{{% /tab %}} +{{< /tabs >}} + +## Métricas de salud {#health-metrics} + +Para [métricas de componentes][7] y [métricas de búfer de destino][8] emitidas por todos los destinos, consulte la documentación de [Métricas de uso de Pipelines][9]. Para filtrar o agrupar por métricas de destino de Datadog Logs, utilice la etiqueta `component_type:datadog_logs`. + +## Cómo funciona el destino {#how-the-destination-works} + +### Procesamiento por lotes de eventos {#event-batching} + +Un lote de eventos se vacía cuando se cumple uno de estos parámetros. Consulte [Agrupamiento de eventos de destino][2] para obtener más información. + +| Máximo de eventos | Tamaño máximo (MB) | Tiempo de espera (segundos) | +|----------------|-------------------|---------------------| +| 1,000 | 4.25 | 5 | + +[1]: https://app.datadoghq.com/observability-pipelines +[2]: /es/observability_pipelines/destinations/#event-batching +[3]: /es/byoc-logs/install/ +[4]: /es/observability_pipelines/configuration/set_up_pipelines/ +[5]: /es/api/latest/observability-pipelines/ +[6]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/observability_pipeline +[7]: /es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics/#component-metrics +[8]: /es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics/#destination-buffer-metrics +[9]: /es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics/ \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics.md b/hugo/content/es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics.md new file mode 100644 index 00000000000..c004deb9828 --- /dev/null +++ b/hugo/content/es/observability_pipelines/monitoring_and_troubleshooting/pipeline_usage_metrics.md @@ -0,0 +1,438 @@ +--- +aliases: +- /es/observability_pipelines/monitoring/metrics/ +description: Encuentre las métricas disponibles en Observability Pipelines para crear + dashboards, notebooks y seguimientos. +disable_toc: false +further_reading: +- link: /metrics/summary/ + tag: Documentación + text: Obtenga más información sobre el Metrics Summary +- link: /metrics/explorer/ + tag: Documentación + text: Uso del Metrics Explorer para explorar y analizar sus métricas +- link: /getting_started/dashboards/ + tag: Documentación + text: Primeros pasos con dashboards +- link: /getting_started/monitors/ + tag: Documentación + text: Primeros pasos con seguimientos +- link: https://www.datadoghq.com/blog/otel-ai-observability-pipelines-clickhouse/ + tag: Blog + text: Envíe datos de OTel desde aplicaciones de IA a ClickHouse y Datadog usando + Observability Pipelines +title: Métricas de uso de Pipelines +--- +## Descripción general {#overview} + +Este documento enumera algunas de las métricas disponibles en Observability Pipelines. Usted puede: + +- Cree sus propios [dashboards][1], [notebooks][2] y [seguimientos][3] con estas métricas. +- Utilice [Metrics Summary][5] para ver los metadatos y las etiquetas disponibles para las métricas. También puede ver cuáles dashboards, notebooks, seguimientos y SLOs están utilizando esas métricas. + +Consulte [Primeros pasos con las etiquetas][4] para obtener más información sobre cómo usar etiquetas para agrupar métricas por Pipelines, Workers y componentes específicos. + +Todas las métricas están etiquetadas con lo siguiente: + +`pipeline_id` +: El UUID de la canalización. + +`worker_uuid` +: El UUID del Worker que emite la métrica. + +`op_worker_version` +: La versión del Worker que emite la métrica. + +`rc_version` +: El número de versión de la configuración, que se incrementa cada vez que se actualiza la canalización. + +`pipeline_name` +: El nombre de la canalización cuando se implementó o actualizó por última vez. Disponible en la versión 2.18 de Worker y posteriores. + +**Notas**: +- Cada Worker también ejecuta una canalización interna que recopila la propia telemetría del Worker (métricas y registros) y la envía a Datadog. Los componentes de esta canalización interna tienen una etiqueta `component_id` cuyo valor comienza con un guion bajo (`_`). Para excluir estas métricas de sus consultas, utilice `!component_id:_*`. +- Las métricas que terminan en `_total` informan un recuento para cada intervalo de tiempo, por lo que su valor sin procesar no aumenta de forma monótona. + +## Métrica de uso estimado {#estimated-usage-metric} + +Bytes ingeridos por Observability Pipelines +: **Métrica**: `datadog.estimated_usage.observability_pipelines.ingested_bytes` +: **Descripción**: El volumen de datos ingeridos por Observability Pipelines. Consulte [Métricas de uso estimado][6] para obtener más información. + +## Métricas de servidor {#host-metrics} + +Estas métricas proporcionan información sobre el host que ejecuta el Observability Pipelines Worker. + +Memoria disponible +: **Métrica**: `pipelines.host.memory_available_bytes` +: **Descripción:** La cantidad de bytes de memoria disponibles para nuevas asignaciones en el servidor. + +Bytes de entrada +: **Métrica**: `pipelines.host.network_receive_bytes_total` +: **Descripción:** El número de bytes recibidos por el servidor en todas las interfaces. Utilice la etiqueta `device` para filtrar por interfaz, por ejemplo `device:eth0`. + +Bytes de salida +: **Métrica**: `pipelines.host.network_transmit_bytes_total` +: **Descripción:** El número de bytes enviados por el servidor en todas las interfaces. Utilice la etiqueta `device` para filtrar por interfaz. + +Tiempo de CPU +: **Métrica**: `pipelines.host.cpu_seconds_total` +: **Descripción:** El tiempo total de CPU consumido por el servidor, desglosado por modo (usuario, sistema, inactivo, etcétera) y núcleo de CPU. + +Bytes de lectura/escritura en disco +: **Métrica**: `pipelines.host.disk_read_bytes_total`, `pipelines.host.disk_written_bytes_total` +: **Descripción:** El número de bytes leídos y escritos en todos los discos del servidor. + +Tiempo de actividad del servidor +: **Métrica**: `pipelines.host.uptime` +: **Descripción:** La cantidad de tiempo transcurrido desde que se inició el servidor, en segundos. + +Promedio de carga +: **Métrica**: `pipelines.host.load1`, `pipelines.host.load5`, `pipelines.host.load15` +: **Descripción:** El promedio de carga del sistema del servidor durante los últimos 1, 5 y 15 minutos. El promedio de carga es el número de procesos que se están ejecutando o esperando para ejecutarse, y en Linux también incluye procesos bloqueados en E/S ininterrumpible. Compare el valor del promedio de carga con el valor `pipelines.host.logical_cpus`: ; un valor de promedio de carga cercano al número de CPU indica una utilización completa, y un valor superior indica que el servidor está sobresuscrito. No se emite en Workers que se ejecutan en Windows. + +CPUs lógicas +: **Métrica**: `pipelines.host.logical_cpus` +: **Descripción:** El número de hilos de CPU lógicos (hilos de hardware) disponibles en el servidor. + +Memoria total +: **Métrica**: `pipelines.host.memory_total_bytes` +: **Descripción:** La memoria física total (RAM) instalada en el servidor. + +## Métricas de proceso {#process-metrics} + +Estas métricas proporcionan información sobre el proceso del Observability Pipelines Worker. + +Núcleos de CPU asignados +: **Métrica**: `pipelines.cpu_max_cores` +: **Descripción:** El número de núcleos de CPU asignados al Worker, según lo informado por los límites del contenedor o cgroup. + +Uso de CPU +: **Métrica**: `pipelines.cpu_usage_seconds_total` +: **Descripción:** La cantidad de tiempo de CPU consumida por el proceso del Worker en segundos (en el espacio de usuario y de sistema). La tasa por segundo de esa métrica muestra la proporción de la CPU utilizada por el Worker. + +Bytes disponibles en el directorio de datos +: **métrica**: `pipelines.data_dir_available_bytes` +: **Descripción:** El espacio de almacenamiento libre restante en el sistema de archivos donde el Worker almacena sus datos de búfer y estado. Útil para monitorear los búferes de disco. + +Capacidad del directorio de datos en bytes +: **métrica**: `pipelines.data_dir_capacity_bytes` +: **Descripción:** La capacidad de almacenamiento total del sistema de archivos donde el Worker almacena sus datos de búfer y estado. + +Límite de memoria +: **métrica**: `pipelines.memory_max_bytes` +: **Descripción:** La memoria máxima que el Worker tiene permitido usar, según lo establecido por los límites del contenedor o cgroup. + +Uso de memoria +: **métrica**: `pipelines.resident_memory_used_bytes` +: **Descripción:** La cantidad de memoria RSS utilizada por el proceso del Worker en bytes. + +Tiempo de actividad del Worker +: **métrica**: `pipelines.uptime_seconds` +: **Descripción:** La cantidad de tiempo transcurrido desde que se inició el proceso del Worker, en segundos. + +## Métricas del ciclo de vida del Worker {#worker-lifecycle-metrics} + +Estas métricas rastrean los eventos del ciclo de vida de Observability Pipelines Worker. + +Recargas del Worker +: **métrica**: `pipelines.reloaded_total` +: **Descripción:** La cantidad de veces que se ha recargado la instancia del Worker, por ejemplo, después de un cambio de configuración. + +## Métricas de componentes {#component-metrics} + +Estas métricas están disponibles para fuentes, procesadores y destinos. + +- Utilice la etiqueta `component_id` para filtrar o agrupar por componentes individuales. +- Utilice la etiqueta `component_type` para filtrar o agrupar por el tipo de fuente, procesador o destino, como `quota` para el procesador Quota. +- Utilice la etiqueta `component_kind` para filtrar o agrupar por `source`, `transform` (procesador) o `sink` (destino). + +{{< tabs >}} +{{% tab "Fuentes" %}} + +### Rendimiento {#throughput} + +Bytes de entrada +: **Métrica**: `pipelines.component_received_bytes_total` +: **Descripción**: La cantidad de bytes sin procesar leídos de la entrada de la fuente, antes de cualquier decodificación o transformación. + +Eventos de entrada +: **Métrica**: `pipelines.component_received_events_total` +: **Descripción**: La cantidad de eventos recibidos por el componente. + +Eventos de salida +: **Métrica**: `pipelines.component_sent_events_total` +: **Descripción**: La cantidad de eventos que el componente envía hacia adelante. + +Bytes de eventos de entrada +: **Métrica**: `pipelines.component_received_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos recibidos por el componente. + +Bytes de eventos de salida +: **Métrica**: `pipelines.component_sent_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos que el componente envía hacia adelante. + +### Errores, datos descartados y tiempos de espera agotados {#errors-data-dropped-and-timed-outs} + +Errores +: **Métrica**: `pipelines.component_errors_total` +: **Descripción**: El número de errores encontrados por el componente. Dependiendo del componente, esta métrica puede incluir una etiqueta `error_code`, `error_type` o `reason` que describe el error. + +Datos descartados intencionalmente o involuntariamente +: **Métrica**: `pipelines.component_discarded_events_total` +: **Descripción**: El número de eventos descartados. **Nota**: Para desglosar esta métrica, use la etiqueta `intentional:true` para filtrar los eventos que se descartan intencionalmente o la etiqueta `intentional:false` para los eventos que no se descartan intencionalmente. + +Eventos con tiempo de espera agotado +: **Métrica**: `pipelines.component_timed_out_events_total` +: **Descripción**: El número de eventos que esperaron más de 5 segundos para ser enviados al primer procesador y resultaron en un error HTTP 503. Esto podría ocurrir cuando la entrega de eventos está bloqueada. +: **Disponible para**: Fuentes basadas en HTTP que tienen un tiempo de espera configurado, como el Datadog Agent. + +Solicitudes con tiempo de espera agotado +: **Métrica**: `pipelines.component_timed_out_requests_total` +: **Descripción**: El número de solicitudes que agotaron el tiempo de espera para fuentes que envían eventos al Worker en lotes usando solicitudes HTTP. +: **Disponible para**: Fuentes basadas en HTTP que tienen un tiempo de espera configurado, como el Datadog Agent. + +### Rendimiento {#performance} + +Latencia de envío +: **Métrica**: `pipelines.source_send_latency_seconds` +: **Description**: El tiempo que le toma a la fuente enviar un fragmento de eventos al siguiente componente. Disponible en la versión 2.16 del Worker y posteriores. + +Latencia de envío de lote +: **Métrica**: `pipelines.source_send_batch_latency_seconds` +: **Description**: El tiempo que le toma a la fuente enviar un lote, el cual puede contener múltiples fragmentos de eventos, al siguiente componente. Disponible en la versión 2.16 del Worker y posteriores. + +Tiempo de retraso de la fuente +: **Métrica**: `pipelines.source_lag_time_seconds` +: **Descripción**: La diferencia, en segundos, entre la propia marca de tiempo de un evento y el momento en que el Worker lo recibió. Los valores altos indican que llegan datos obsoletos o retrasados a la canalización. + +### Búfer {#buffer} + +Utilice estas métricas para analizar el rendimiento del búfer. Todas las métricas se emiten en un intervalo de un segundo, a menos que se indique lo contrario. + +{{% observability_pipelines/metrics/buffer/sources %}} + +{{% /tab %}} +{{% tab "Procesadores" %}} + +### Rendimiento {#throughput-1} + +Eventos de entrada +: **Métrica**: `pipelines.component_received_events_total` +: **Descripción**: La cantidad de eventos recibidos por el componente. + +Eventos de salida +: **Métrica**: `pipelines.component_sent_events_total` +: **Descripción**: La cantidad de eventos que el componente envía hacia adelante. + +Bytes de eventos de entrada +: **Métrica**: `pipelines.component_received_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos recibidos por el componente. + +Bytes de eventos de salida +: **Métrica**: `pipelines.component_sent_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos que el componente envía hacia adelante. + +Eventos incluidos +: **Métrica**: `pipelines.included_events_total` +: **Descripción**: El número de eventos que coincidieron con la consulta de filtro del procesador y fueron procesados. Los eventos que no coinciden con la consulta de filtro omiten el procesador y continúan hacia el siguiente componente. + +Bytes de eventos incluidos +: **Métrica**: `pipelines.included_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos que coincidieron con la consulta de filtro del procesador y fueron procesados. + +### Errores y datos descartados {#errors-and-data-dropped} + +Errores +: **Métrica**: `pipelines.component_errors_total` +: **Descripción**: El número de errores encontrados por el componente. Dependiendo del componente, esta métrica puede incluir una etiqueta `error_code`, `error_type` o `reason` que describe el error. + +Datos descartados intencionalmente o involuntariamente +: **Métrica**: `pipelines.component_discarded_events_total` +: **Descripción**: El número de eventos descartados. **Nota**: Para desglosar esta métrica, use la etiqueta `intentional:true` para filtrar los eventos que se descartan intencionalmente o la etiqueta `intentional:false` para los eventos que no se descartan intencionalmente. + +### Rendimiento {#performance-1} + +Uso de CPU +: **Métrica**: `pipelines.component_cpu_usage_ns_total` +: **Descripción**: El tiempo de CPU consumido por un componente, en nanosegundos. Utilice esta métrica para atribuir el costo de CPU a procesadores individuales. Disponible en la versión 2.18 de Worker y posteriores para Linux y MacOS. +: **Disponible para estos procesadores de registro**:
- Procesador personalizado
- Deduplicador
- Tabla de enriquecimiento
- Analizador Grok
- Analizar JSON
- Analizar XML
- Reducir
- Remapear a OCSF
- Sensitive Data Scanner
- Dividir matriz
- Procesadores de registro de limitación de velocidad +: **Disponible para estos procesadores de métricas**:
- Agregador
- Métricas de límite de cardinalidad de etiquetas + +Utilización +: **Métrica**: `pipelines.utilization` +: **Descripción**: La actividad del componente. Un valor de `0` indica un componente inactivo que está esperando datos de entrada. Un valor cercano a `1` indica un componente que nunca está inactivo, lo que significa que el componente probablemente sea un cuello de botella en la topología de procesamiento que está creando contrapresión. Esto podría causar que se descarten eventos. + +### Búfer {#buffer-1} + +Utilice estas métricas para analizar el rendimiento del búfer. Todas las métricas se emiten en un intervalo de un segundo, a menos que se indique lo contrario. + +{{% observability_pipelines/metrics/buffer/processors %}} + +{{% /tab %}} +{{% tab "Destinos" %}} + +### Rendimiento {#throughput-2} + +Bytes de salida +: **Métrica**: `pipelines.component_sent_bytes_total` +: **Descripción**: La cantidad de bytes sin procesar escritos en la salida del destino, después de la codificación y las transformaciones. + +Eventos de entrada +: **Métrica**: `pipelines.component_received_events_total` +: **Descripción**: La cantidad de eventos recibidos por el componente. + +Eventos de salida +: **Métrica**: `pipelines.component_sent_events_total` +: **Descripción**: La cantidad de eventos que el componente envía hacia adelante. + +Bytes de eventos de entrada +: **Métrica**: `pipelines.component_received_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos recibidos por el componente. + +Bytes de eventos de salida +: **Métrica**: `pipelines.component_sent_event_bytes_total` +: **Descripción**: El tamaño en bytes de los eventos que el componente envía hacia adelante. + +### Errores y datos descartados {#errors-and-data-dropped-1} + +Errores +: **Métrica**: `pipelines.component_errors_total` +: **Descripción**: El número de errores encontrados por el componente. Dependiendo del componente, esta métrica puede incluir una etiqueta `error_code`, `error_type` o `reason` que describe el error. + +Datos descartados intencionalmente o involuntariamente +: **Métrica**: `pipelines.component_discarded_events_total` +: **Descripción**: El número de eventos descartados. **Nota**: Para desglosar esta métrica, use la etiqueta `intentional:true` para filtrar los eventos que se descartan intencionalmente o la etiqueta `intentional:false` para los eventos que no se descartan intencionalmente. + +### Rendimiento {#performance-2} + +Utilización +: **Métrica**: `pipelines.utilization` +: **Descripción**: La actividad del componente. Un valor de `0` indica un componente inactivo que está esperando datos de entrada. Un valor cercano a `1` indica un componente que nunca está inactivo, lo que significa que el componente probablemente sea un cuello de botella en la topología de procesamiento que está creando contrapresión. Esto podría causar que se descarten eventos. + +### Búfer {#buffer-2} + +Utilice estas métricas para analizar el rendimiento del búfer. Todas las métricas se emiten en un intervalo de un segundo, a menos que se indique lo contrario. + +{{% observability_pipelines/metrics/buffer/destinations %}} + +#### Métricas de búfer obsoletas {#deprecated-buffer-metrics} + +{{% observability_pipelines/metrics/buffer/deprecated_destination_metrics %}} + +{{% /tab %}} +{{< /tabs >}} + +## Métricas del servidor HTTP {#http-server-metrics} + +Estas métricas son emitidas por fuentes que reciben datos a través de HTTP, como Datadog Agent, el servidor HTTP/S, OpenTelemetry y las fuentes de Splunk HEC. + +- Utilice la etiqueta `component_id` para filtrar o agrupar por componentes individuales. +- Use la etiqueta `component_type` para filtrar o agrupar por el tipo de fuente. + +`pipelines.http_server_requests_received_total` +: **Descripción**: El número de solicitudes HTTP recibidas. +: **Tipo de métrica**: conteo + +`pipelines.http_server_responses_sent_total` +: **Descripción**: El número de respuestas HTTP enviadas. +: **Tipo de métrica**: conteo + +`pipelines.http_server_handler_duration_seconds` +: **Descripción**: El tiempo dedicado a gestionar una solicitud HTTP. +: **Tipo de métrica**: distribución + +## Métricas del cliente HTTP {#http-client-metrics} + +Estas métricas son emitidas por destinos que envían datos a través de HTTP, incluyendo: + +- CrowdStrike NG-SIEM +- Datadog Logs +- Datadog Metrics +- Elasticsearch +- Google SecOps +- Destino del cliente HTTP +- Microsoft Sentinel +- New Relic +- OpenSearch +- SentinelOne +- Splunk HEC + +**Nota**: Los destinos basados en AWS (como Amazon S3, Amazon OpenSearch y Amazon Security Lake) no emiten estas métricas. + +- Utilice la etiqueta `component_id` para filtrar o agrupar por componentes individuales. +- Utilice la etiqueta `component_type` para filtrar o agrupar por el tipo de destino. + +`pipelines.http_client_requests_sent_total` +: **Descripción**: El número de solicitudes HTTP enviadas, etiquetadas por método de solicitud. +: **Tipo de métrica**: conteo + +`pipelines.http_client_responses_total` +: **Descripción**: El número de respuestas HTTP recibidas, etiquetadas por estado de respuesta. +: **Tipo de métrica**: conteo + +`pipelines.http_client_errors_total` +: **Descripción**: El número de errores de cliente HTTP, etiquetados por tipo de error. +: **Tipo de métrica**: conteo + +`pipelines.http_client_rtt_seconds` +: **Descripción**: El tiempo de ida y vuelta, en segundos, para las solicitudes HTTP, desde que se envía la solicitud hasta que se recibe la respuesta final o el error. +: **Tipo de métrica**: distribución + +`pipelines.http_client_response_rtt_seconds` +: **Descripción**: El tiempo de ida y vuelta, en segundos, de las solicitudes HTTP, etiquetadas por estado de respuesta. +: **Tipo de métrica**: distribución + +`pipelines.http_client_error_rtt_seconds` +: **Descripción**: El tiempo de ida y vuelta, en segundos, de las solicitudes HTTP que resultaron en un error, etiquetadas por tipo de error. +: **Tipo de métrica**: distribución + +## Métricas de concurrencia adaptativa {#adaptive-concurrency-metrics} + +Estas métricas proporcionan información sobre el controlador de concurrencia adaptativa, el cual ajusta automáticamente cuántas solicitudes HTTP en curso permite un destino según los tiempos de respuesta observados. Son emitidas por destinos que envían datos a través de HTTP, incluidos los destinos basados en AWS. + +- Utilice la etiqueta `component_id` para filtrar o agrupar por componentes individuales. +- Utilice la etiqueta `component_type` para filtrar o agrupar por el tipo de destino. + +`pipelines.active_endpoints` +: **Descripción**: El número de puntos finales de destino que están marcados como saludables. +: **Tipo de métrica**: gauge + +`pipelines.adaptive_concurrency_limit` +: **Descripción**: El límite de concurrencia para solicitudes HTTP a este destino, ajustado automáticamente por el controlador de concurrencia adaptativa según los tiempos de respuesta. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_in_flight` +: **Descripción**: El número de solicitudes HTTP en curso hacia un destino, comparado con el límite de concurrencia adaptativa para determinar cuándo limitar. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_reached_limit` +: **Descripción**: Si el controlador de concurrencia adaptativa alcanzó su límite calculado (`1`) o no (`0`) durante el último intervalo de medición. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_back_pressure` +: **Descripción**: Si el controlador de concurrencia adaptativa detectó contrapresión (`1`) o no (`0`) durante el último intervalo de medición. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_averaged_rtt` +: **Descripción**: El tiempo de ida y vuelta (RTT) promedio suavizado, en segundos, para las solicitudes HTTP a este destino, utilizado como línea base para los cálculos de concurrencia adaptativa. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_observed_rtt` +: **Descripción**: El tiempo de ida y vuelta (RTT), en segundos, observado para la solicitud HTTP más reciente a este destino. +: **Tipo de métrica**: distribución + +`pipelines.adaptive_concurrency_past_rtt_mean` +: **Descripción**: El RTT medio histórico, en segundos, para las solicitudes HTTP a este destino, utilizado como línea base a largo plazo para los ajustes de concurrencia adaptativa. +: **Tipo de métrica**: distribución + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/getting_started/dashboards/ +[2]: /es/notebooks/ +[3]: /es/getting_started/monitors/ +[4]: /es/getting_started/tagging/ +[5]: https://app.datadoghq.com/metric/summary +[6]: https://docs.datadoghq.com/es/account_management/billing/usage_metrics/ \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/processors/dedupe.md b/hugo/content/es/observability_pipelines/processors/dedupe.md index d912e949d24..d042644e91c 100644 --- a/hugo/content/es/observability_pipelines/processors/dedupe.md +++ b/hugo/content/es/observability_pipelines/processors/dedupe.md @@ -1,13 +1,48 @@ --- +description: Aprenda a usar el procesador Deduplicate para eliminar copias de registros + y reducir el volumen y el ruido. disable_toc: false products: - icon: logs - name: Logs -title: Procesador de deduplicación + name: Registros + url: /observability_pipelines/configuration/?tab=logs#pipeline-types +title: Procesador Deduplicate --- - {{< product-availability >}} -{{% observability_pipelines/processors/dedupe %}} +## Descripción general {#overview} + +El procesador Deduplicate elimina copias de registros para reducir el volumen y el ruido. Almacena mensajes en caché y compara el tráfico de registros entrantes con los mensajes almacenados en caché. Por ejemplo, este procesador se puede usar para conservar solo registros de advertencia únicos en la incidencia en que se envíen múltiples registros de advertencia idénticos de forma sucesiva. + +## Configuración {#setup} + +Para configurar el procesador Deduplicate: + +1. Defina un {{< ui >}}filter query{{< /ui >}}. Consulte [Sintaxis de búsqueda de registros][1] para obtener más información. + - Solo se procesan los registros que coinciden con la consulta de filtro especificada. + - Todos los registros, independientemente de si coinciden con la consulta de filtro, se envían al siguiente paso de la canalización. +1. En el menú desplegable {{< ui >}}Type of deduplication{{< /ui >}}, seleccione si desea `Match` o `Ignore` los campos especificados a continuación. + - Si se selecciona `Match`, después de que un registro pase, los registros futuros que tengan los mismos valores para todos los campos que especifique a continuación serán eliminados. + - Si se selecciona `Ignore`, después de que un registro pase, los registros futuros que tengan los mismos valores para todos sus campos, *excepto* los que especifique a continuación, serán eliminados. +1. Ingrese los campos que desea hacer coincidir o ignorar. Se requiere al menos un campo y puede especificar un máximo de tres campos. + - Use la notación de ruta `.` para hacer coincidir subcampos. Consulte el [ejemplo de notación de ruta](#path-notation-example) a continuación. +1. Haga clic en {{< ui >}}Add field{{< /ui >}} para agregar campos adicionales sobre los cuales desea filtrar. + +### Configuración opcional {#optional-settings} + +#### Tamaño de caché {#cache-size} + +El tamaño de caché predeterminado es de 5,000 mensajes (recomendado). Los mensajes almacenados en caché se mantienen en la memoria para determinar si los mensajes entrantes son duplicados. Puede aumentar el tamaño de la caché para adaptarlo a sus necesidades. + +**Notas**: +- Aumentar el tamaño de la caché aumenta el uso de memoria. +- La caché está respaldada por una caché LRU, donde el tamaño de la caché LRU es el mismo que el tamaño de caché configurado. +- Dado que la caché no se comparte entre los Workers, solo se descartan los eventos duplicados procesados por el mismo Worker. + +### Ejemplo de notación de ruta {#path-notation-example} + +{{% observability_pipelines/path_notation %}} + +{{% observability_pipelines/path_notation_dots %}} -{{% observability_pipelines/processors/filter_syntax %}} \ No newline at end of file +[1]: /es/observability_pipelines/search_syntax/logs/ \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/sources/logstash.md b/hugo/content/es/observability_pipelines/sources/logstash.md index 332b370adfb..d3d066a6609 100644 --- a/hugo/content/es/observability_pipelines/sources/logstash.md +++ b/hugo/content/es/observability_pipelines/sources/logstash.md @@ -1,45 +1,69 @@ --- +description: Aprenda a recopilar registros de un agente Logstash usando el Observability + Pipelines Worker. disable_toc: false -title: Origen de Logstash +products: +- icon: logs + name: Registros + url: /observability_pipelines/configuration/?tab=logs#pipeline-types +title: Fuente Logstash --- +{{< product-availability >}} -Utiliza el origen de Logstash de los pipelines de observabilidad para recibir logs de tu Agent de Logstash. Selecciona y configura este origen cuando [configures un pipeline][1]. +## Descripción general {#overview} -## Requisitos previos +Utilice la fuente Logstash de Observability Pipelines para recibir registros de su agente Logstash. + +También puede utilizar la fuente Logstash para [enviar registros a Observability Pipelines usando Filebeat][2]. + +## Requisitos previos {#prerequisites} {{% observability_pipelines/prerequisites/logstash%}} -## Configurar el origen en la interfaz de usuario del pipeline +## Configuración {#setup} -Selecciona y configura este origen cuando [configures pipeline][1]. La siguiente información se refiere a la configuración del origen en la interfaz de usuario del pipeline. +
Para la gestión de secretos: solo ingrese los identificadores para la dirección de Logstash y, si corresponde, la frase de contraseña de la clave TLS. No ingrese los valores reales.
-{{% observability_pipelines/source_settings/logstash %}} +Configure esta fuente cuando [configure una canalización][1]. Puede configurar un pipeline en la [UI][4], utilizando la [API][5] o con [Terraform][6]. Las instrucciones de esta sección son para configurar la fuente en la interfaz de usuario. -## Enviar logs al worker de pipelines de observabilidad a través de Logstash +Después de seleccionar la fuente Logstash en la pipeline UI, ingrese el identificador para su dirección de Logstash. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). -{{% observability_pipelines/log_source_configuration/logstash %}} +{{% observability_pipelines/secrets_env_var_note %}} + +### Configuración de TLS opcional {#optional-tls-settings} + +{{% observability_pipelines/tls_settings %}} + +{{% observability_pipelines/tls_settings_mtls %}} -## Enviar logs mediante Filebeat a pipelines de observabilidad +## Valores predeterminados de Secret {#secret-defaults} -Utiliza el origen de Logstash para enviar logs al worker de pipelines de observabilidad con Filebeat. +{{% observability_pipelines/set_secrets_intro %}} -1. [Configura Filebeat][2] si aún no lo has hecho. -1. En el archivo `filebeat.yml`: -
a. Comenta la sección de configuración de Elasticsearch Output (Salida de Elasticsearch). -
b. Elimina los comentarios y configura la sección Logstash Output (Salida de Logstash): - ``` - # ------------------------------ Logstash Output ------------------------------- - output.logstash: - # The Logstash hosts - hosts: [":9997"] - ``` - `` es la dirección IP de host o la URL del equilibrador de carga asociada con el worker de pipelines de observabilidad. +{{< tabs >}} +{{% tab "Gestión de secretos" %}} - Para las instalaciones de CloudFormation, utiliza la salida `LoadBalancerDNS` de CloudFormation para la URL. +- Identificador de dirección de Logstash: + - Hace referencia a la dirección en la que Observability Pipelines Worker escucha los mensajes de registro entrantes. + - El identificador predeterminado es `SOURCE_LOGSTASH_ADDRESS`. +- Identificador de frase de contraseña TLS de Logstash (cuando TLS está habilitado): + - El identificador predeterminado es `SOURCE_LOGSTASH_KEY_PASS`. - Para las instalaciones de Kubernetes, puedes utilizar el registro DNS interno del servicio de worker de pipelines de observabilidad. Por ejemplo: `opw-observability-pipelines-worker.default.svc.cluster.local`. -1. [Configura un pipeline][3] con el origen de Logstash. +{{% /tab %}} + +{{% tab "Variables de entorno" %}} + +{{% observability_pipelines/configure_existing_pipelines/source_env_vars/logstash %}} + +{{% /tab %}} +{{< /tabs >}} + +## Envíe registros al Observability Pipelines Worker a través de Logstash {#send-logs-to-the-observability-pipelines-worker-over-logstash} + +{{% observability_pipelines/log_source_configuration/logstash %}} -[1]: /es/observability_pipelines/set_up_pipelines/ -[2]: https://www.elastic.co/guide/en/beats/filebeat/current/setup-repositories.html -[3]: /es/observability_pipelines/set_up_pipelines/ \ No newline at end of file +[1]: /es/observability_pipelines/configuration/set_up_pipelines/ +[2]: /es/observability_pipelines/sources/filebeat/ +[4]: https://app.datadoghq.com/observability-pipelines +[5]: /es/api/latest/observability-pipelines/ +[6]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/observability_pipeline \ No newline at end of file diff --git a/hugo/content/es/observability_pipelines/sources/sumo_logic.md b/hugo/content/es/observability_pipelines/sources/sumo_logic.md index 371dab1ea11..10e1cab849c 100644 --- a/hugo/content/es/observability_pipelines/sources/sumo_logic.md +++ b/hugo/content/es/observability_pipelines/sources/sumo_logic.md @@ -1,29 +1,60 @@ --- +description: Aprenda a recopilar registros enviados a un Sumo Logic Hosted Collector + utilizando el Observability Pipelines Worker. disable_toc: false products: - icon: logs - name: Logs + name: Registros + url: /observability_pipelines/configuration/?tab=logs#pipeline-types title: Sumo Logic Hosted Collector --- - {{< product-availability >}} -Utiliza la fuente Sumo Logic Hosted Collector de Observability Pipelines para recibir logs enviados a tu Sumo Logic Hosted Collector. Selecciona y configura esta fuente cuando [configures un pipeline][1]. +## Descripción general {#overview} + +Utilice la fuente Sumo Logic Hosted Collector de Observability Pipelines para recibir registros enviados a su Sumo Logic Hosted Collector. -## Requisitos previos +## Requisitos previos {#prerequisites} {{% observability_pipelines/prerequisites/sumo_logic %}} -## Configurar la fuente en la interfaz de usuario del pipeline +## Configuración {#setup} + +
Para la administración de secretos: solo ingrese el identificador para la dirección de Sumo Logic. No ingrese el valor real.
+ +Configure esta fuente cuando [configure una canalización][1]. Puede configurar una canalización en la [interfaz de usuario][2], utilizando la [API][3] o con [Terraform][4]. Las instrucciones de esta sección son para configurar la fuente en la interfaz de usuario. + +Después de seleccionar la fuente Sumo Logic en la interfaz de usuario de la canalización, ingrese el identificador para su dirección de Sumo Logic. Si lo deja en blanco, se utiliza el [predeterminado](#secret-defaults). + +{{% observability_pipelines/secrets_env_var_note %}} -Selecciona y configura esta fuente cuando [configures un pipeline][1]. La siguiente información corresponde a la configuración de la fuente en la interfaz de usuario del pipeline. +### Configuración opcional {#optional-settings} -En el menú desplegable **Decodificación**, también puedes seleccionar si el formato de entrada es **Bytes** sin procesar, **JSON**, Graylog Extended Log Format (**Gelf**) o **Syslog**. Si no se selecciona ninguna decodificación, ésta será JSON por defecto. +En el menú desplegable {{< ui >}}Decoding{{< /ui >}}, seleccione si su formato de entrada es raw {{< ui >}}Bytes{{< /ui >}}, {{< ui >}}JSON{{< /ui >}}, Graylog Extended Log Format ({{< ui >}}Gelf{{< /ui >}}) o {{< ui >}}Syslog{{< /ui >}}. Si no se selecciona ninguna decodificación, la decodificación predeterminada es JSON. -## Configurar las variables de entorno +## Valores predeterminados de Secret {#secret-defaults} + +{{% observability_pipelines/set_secrets_intro %}} + +{{< tabs >}} +{{% tab "Gestión de secretos" %}} + +- Identificador de la dirección de Sumo Logic: + - Hace referencia a la dirección de enlace, como `0.0.0.0:80.`, en la que su Observability Pipelines Worker escucha para recibir registros destinados originalmente a la fuente HTTP de Sumo Logic. + - El identificador predeterminado es `SOURCE_SUMO_LOGIC_ADDRESS`. + +{{% /tab %}} + +{{% tab "Variables de entorno" %}} {{% observability_pipelines/configure_existing_pipelines/source_env_vars/sumo_logic %}} +{{% /tab %}} +{{< /tabs >}} + {{% observability_pipelines/log_source_configuration/sumo_logic %}} -[1]: /es/observability_pipelines/configuration/set_up_pipelines/ \ No newline at end of file +[1]: /es/observability_pipelines/configuration/set_up_pipelines/ +[2]: https://app.datadoghq.com/observability-pipelines +[3]: /es/api/latest/observability-pipelines/ +[4]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/observability_pipeline \ No newline at end of file diff --git a/hugo/content/es/opentelemetry/mapping/service_entry_spans.md b/hugo/content/es/opentelemetry/mapping/service_entry_spans.md new file mode 100644 index 00000000000..ed899618592 --- /dev/null +++ b/hugo/content/es/opentelemetry/mapping/service_entry_spans.md @@ -0,0 +1,75 @@ +--- +aliases: +- /es/opentelemetry/guide/service_entry_spans_mapping/ +- /es/opentelemetry/schema_semantics/service_entry_spans/ +further_reading: +- link: /opentelemetry/integrations/trace_metrics + tag: Documentación + text: Métricas de traza de OpenTelemetry +title: Mapeo de convenciones semánticas de OpenTelemetry a tramos de entrada de servicio +--- +## Descripción general {#overview} +Datadog utiliza [tramos de entrada de servicio][1] en toda la plataforma para funciones como [métricas de traza][2] y el [APM Trace Explorer][3]. Esta convención es exclusiva de Datadog, pero se puede mapear desde el atributo [`SpanKind`][4] en OpenTelemetry siguiendo la guía opt-in a continuación. + +## Requisitos {#requirements} + +- OTel Collector Contrib v0.100.0 o superior +- Datadog Agent v7.53.0 o superior + +## Configuración {#setup} + +Habilite la opción de configuración según su ruta de ingesta: + +{{< tabs >}} +{{% tab "OTel Collector y Datadog Exporter" %}} + +La nueva lógica de identificación de tramos de entrada de servicio se puede habilitar configurando la opción `traces::compute_top_level_by_span_kind` en true en el [Datadog exporter][2] y el [Datadog connector][1]. Esta opción de configuración debe habilitarse tanto en el Datadog exporter como en el Datadog connector si se están utilizando ambos componentes. + +[1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.100.0/connector/datadogconnector/examples/config.yaml#L48-L53 +[2]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.100.0/exporter/datadogexporter/examples/collector.yaml#L365-L370 +{{% /tab %}} +{{% tab "Canalización de ingesta OTLP en el Datadog Agent" %}} + +La nueva lógica de identificación de tramos de entrada de servicio se puede habilitar agregando `"enable_otlp_compute_top_level_by_span_kind"` a [apm_config.features][1] en la configuración del Datadog Agent. + +[1]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/example/datadog-agent_linux.yaml.example +{{% /tab %}} +{{< /tabs >}} + +## Convenciones admitidas {#supported-conventions} + +Las [Métricas de traza][2] se generan para tramos de entrada de servicio y tramos medidos. Estas convenciones de tramo son exclusivas de Datadog, por lo que los tramos de OpenTelemetry se identifican con el siguiente mapeo: +| Convención de OpenTelemetry | Convención de Datadog | +| --- | --- | +| Tramo raíz | Tramo de entrada de servicio | +| Tramo de servidor (`span.kind: server`) | Tramo de entrada de servicio | +| Tramo de consumidor (`span.kind: consumer`) | Tramo de entrada de servicio | +| Tramo de cliente (`span.kind: client`) | Tramo medido | +| Tramo de productor (`span.kind: producer`) | Tramo medido | +| Tramo interno (`span.kind: internal`) | No se generaron métricas de traza | + +## Migración {#migration} + +Esta nueva lógica de identificación de tramos de entrada de servicio puede aumentar la cantidad de tramos que generan métricas de traza, lo cual puede afectar a los monitores existentes que se basan en métricas de traza. Los usuarios que solo tengan tramos internos verán una disminución en las métricas de traza. + +Si tiene monitores existentes basados en métricas de traza, puede actualizarlos después de la actualización, ya que este cambio introduce una mayor consistencia en las métricas de traza. Si solo tiene tramos internos, actualice su instrumentación de acuerdo con la tabla anterior para recibir métricas de traza y tramos de entrada de servicio. + +[`SpanKind`][4] generalmente se establece cuando se crea un tramo, pero también se puede actualizar mediante el uso del [transform processor][5] en el OpenTelemetry Collector para controlar la asignación anterior. Por ejemplo, si se desean métricas de traza para un tramo interno, la siguiente configuración transforma un tramo interno con `http.path: "/health"` en un tramo de cliente: + +```yaml + transform: + trace_statements: + - context: span + statements: + - set(kind.string, "Client") where kind.string == "Internal" and attributes["http.path"] == "/health" +``` + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://docs.datadoghq.com/es/glossary/#service-entry-span +[2]: https://docs.datadoghq.com/es/opentelemetry/integrations/trace_metrics/ +[3]: https://docs.datadoghq.com/es/tracing/trace_explorer +[4]: https://opentelemetry.io/docs/specs/otel/trace/api/#spankind +[5]: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/transformprocessor/README.md \ No newline at end of file diff --git a/hugo/content/es/product_analytics/charts/funnel_analysis.md b/hugo/content/es/product_analytics/charts/funnel_analysis.md index b9879af4a96..593c3385954 100644 --- a/hugo/content/es/product_analytics/charts/funnel_analysis.md +++ b/hugo/content/es/product_analytics/charts/funnel_analysis.md @@ -1,7 +1,7 @@ --- algolia: tags: - - embudo + - funnel aliases: - /es/real_user_monitoring/funnel_analysis - /es/real_user_monitoring/product_analytics/funnel_analysis @@ -10,175 +10,168 @@ disable_toc: false further_reading: - link: /product_analytics/analytics_explorer/ tag: Documentación - text: Analytics Explorer + text: Explorador de Product Analytics +- link: https://learn.datadoghq.com/courses/getting-started-product-analytics + tag: Centro de aprendizaje + text: Introducción a Product Analytics title: Análisis de embudo --- +## Descripción general {#overview} -## Información general +El análisis de embudo le ayuda a realizar un seguimiento de las tasas de conversión en flujos de trabajo clave para identificar y abordar cualquier cuello de botella en las rutas de recorrido de extremo a extremo. Específicamente, usted puede: -El análisis del embudo te ayuda a realizar un seguimiento de las tasas de conversión en flujos de trabajo clave, para identificar y abordar los cuellos de botella en recorridos de extremo a extremo de los usuarios. En concreto, puedes: +- Ver si los clientes abandonan en un punto determinado debido al bajo rendimiento del sitio web +- Realizar un seguimiento de cómo cambia la tasa de conversión con el tiempo a medida que se crean nuevas funciones +- Evaluar cómo la adición de nuevos pasos a un flujo de trabajo afecta la tasa de abandono +- Medir el tiempo promedio para convertir +- Filtrar eventos individuales en diferentes pasos de su embudo +- Combinar múltiples eventos dentro de un paso determinado, ya que los usuarios finales pueden tener diferentes formas de lograr el mismo resultado a través de distintos flujos -- Ver si los clientes abandonan el sitio web en un momento determinado debido a un rendimiento deficiente. -- Realizar un seguimiento de la evolución de la tasa de conversión a medida que se incorporan nuevas funciones. -- Medir cómo afecta a la tasa de abandono la adición de nuevos pasos a un flujo de trabajo. -- Comprender cuánto tiempo tardan en promedio los usuarios en atravesar el embudo (tiempo hasta la conversión). -- Filtrar eventos individuales (acción o vista) en diferentes pasos de tu embudo. -- Combinar varios eventos en un mismo paso, ya que los usuarios finales podrían tener diferentes maneras de obtener el mismo resultado en diferentes flujos. +## Crear un embudo {#build-a-funnel} -## Construir un embudo +Para comenzar a crear un embudo, navegue a [{{< ui >}}Product Analytics{{< /ui >}}][1], luego seleccione [{{< ui >}}Create New{{< /ui >}} > {{< ui >}}Funnel{{< /ui >}}][2]. -Para crear un embudo, ve a [**Product Analytics > Charts** (Análisis de productos > Gráficos)][1] y haz clic en **Funnel** (Embudo). +{{< img src="product_analytics/journeys/funnel_analysis/funnel_overview.png" alt="La opción de embudo resaltada en el cuadro de diálogo Crear nuevo en Product Analytics" style="width:100%;" >}} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_overview.png" alt="Ve a la pestaña Funnel Analysis (Análisis de embudos) en Products Analytics (Análisis de productos)" style="width:100%;" >}} +Seleccione los pasos del usuario que inician el embudo y use {{< ui >}}Add step{{< /ui >}} para agregar pasos adicionales. Arrastre y suelte los pasos para reordenarlos en el embudo. -En esta página, elige tu vista o acción inicial y haz clic en `+ Step` crear pasos adicionales. También puedes utilizar la función de arrastrar y soltar para organizar los pasos. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_add_step_video.mp4" alt="Uso del botón Agregar paso para añadir un paso a un embudo existente, y uso de arrastrar y soltar para mover el nuevo paso al lugar correcto en el embudo." video=true >}} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_video1.mp4" alt="Filtrado del mapa de red con búsquedas" video=true >}} -Si no estás seguro de lo que hicieron tus usuarios, el editor del step (UI) / paso (generic) del embudo carga automáticamente **vistas** y **acciones** comunes que puedes elegir para añadir como pasos. +### Agregar filtros {#add-filters} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_dropoffs.png" alt="El editor de pasos de embudo carga automáticamente las vistas y acciones más frecuentes que los usuarios generalmente ven y realizan respectivamente." style="width:50%;" >}} +Puede filtrar usuarios globalmente o para pasos específicos: +- Para aplicar filtros globales a todo el embudo, seleccione {{< ui >}}Filter by{{< /ui >}} y elija sus opciones. +- Para filtrar usuarios en un paso individual, seleccione el **icono de filtro** para ese paso y elija sus opciones. Filtrar en un paso proporciona información sobre cómo cambia el comportamiento del usuario según una restricción particular en ese paso. Por ejemplo, es posible que desee ver cómo un dispositivo, sistema operativo o geolocalización específicos afectan la conversión en un paso particular. -### Añadir filtros +### Combinar eventos {#combine-events} -Cuando construyas tu embudo, puedes filtrar usuarios globalmente, o para un step (UI) / paso (generic) específico. +Puede combinar múltiples eventos dentro de un solo paso del embudo, para tener en cuenta que los usuarios finales logren el mismo resultado a través de diferentes flujos. Al combinar eventos, cualquier evento incluido puede activar la conversión del paso, utilizando lógica "o". El Gráfico de embudo para un paso combinado muestra datos para todos los eventos que contiene. -- Los **filtros globales** se aplican a todo el embudo. +Para agregar múltiples eventos a un paso, haga clic en el botón {{< ui >}}or{{< /ui >}} junto a un evento existente. - {{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_filter_by-2.png" alt="Uso de atributos para filtrar información globalmente al crear tu embudo" style="width:50%;" >}} +### Comparar datos {#compare-data} -- El **filtrado de un paso** proporciona información sobre cómo cambia el paso en función de una restricción concreta de ese paso. Por ejemplo, es posible que quieras ver cómo un dispositivo, sistema operativo, geolocalización o usuario específico afecta a la conversión entre pasos. +Seleccione {{< ui >}}Compare{{< /ui >}}, luego elija una de las opciones a continuación para comparar los datos del embudo de diferentes maneras: - {{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_filter_by_step.png" alt="Uso de atributos para filtrar información entre pasos al crear tu embudo" style="width:50%;" >}} +{{< ui >}}By breakdown{{< /ui >}}: Agrupe los datos por un atributo específico, como el tipo de dispositivo o la geolocalización. También puede ajustar si desea mostrar los valores superiores (más comunes) o inferiores (menos comunes) dentro del atributo, y cuántos valores incluir. -### Combinar eventos +{{< img src="product_analytics/journeys/funnel_analysis/funnel_compare_by_country.png" alt="La vista Comparar por desglose, configurada para mostrar las cinco principales fuentes de conversión por país." >}} -Al crear tu embudo, puedes combinar varios eventos en un paso dado, ya que los usuarios finales pueden tener diferentes maneras de obtener el mismo resultado en diferentes flujos. Al combinar eventos, cualquiera de los eventos del paso puede representar el paso. El valor numérico que ves es la combinación de todos los pasos dentro del paso combinado. +{{< ui >}}By property or segment{{< /ui >}}: Comparar múltiples segmentos de usuario o atributos de usuario lado a lado. -Para combinar un evento, haz clic en los tres puntos situados junto a un evento y selecciona **+ Combine Events** (+ Combinar eventos). +- Para comparar segmentos de usuario, seleccione los segmentos que desea comparar. +- Para comparar un atributo de usuario, seleccione una propiedad (como Nombre del navegador o País), luego elija los valores que desea comparar (como Firefox, Chrome y Safari). -### Datos del grupo +{{< img src="product_analytics/journeys/funnel_analysis/funnel_side_by_side.png" alt="La vista Comparar por propiedad o segmento, que muestra una comparación lado a lado de cinco valores seleccionados de Nombre del navegador." >}} -Utiliza el desplegable **Group by** (Agrupar por) para agrupar los datos por un atributo específico. +{{< ui >}}By time{{< /ui >}}: Comparar los datos de conversión lado a lado entre períodos de tiempo. -**Nota**: La agrupación de datos no es compatible con la [visualización](#change-the-visualization) de steps (UI) / pasos (generic) del embudo; cuando se aplica, la visualización cambia automáticamente a una top list (lista principal). +## Refinar los conocimientos de conversión {#refine-conversion-insights} -## Refinar la conversión +Puede analizar más a fondo la información en la página del embudo para comprender la eficacia de su sitio para impulsar conversiones. Una [conversión](#conversion-computing-metrics) ocurre cuando un usuario completa el último paso definido en el embudo. -Puedes seguir analizando la información de la página del embudo para comprender la tasa de conversión. La tasa de conversión es una métrica esencial que mide la eficacia de tu sitio o aplicación. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_conversion_dropdown.png" alt="El menú desplegable de refinamiento de conversión con opciones para el análisis por conversiones únicas o totales." style="width:100%;" >}} -Puedes analizar la conversión por **sesión**, **usuario** o **cuenta**. Esto puede ser útil si sospechas, por ejemplo, que una minoría de tu base de usuarios convierte a un ritmo elevado. +Utilice el menú desplegable sobre el panel lateral del gráfico para seleccionar diferentes vistas de análisis de conversión. El análisis de conversión está disponible por: -- Si seleccionas **Session** (Sesión), todos los steps (UI) / pasos (generic) deben completarse dentro de la misma `@session.id` para que cuenten como conversión. +- {{< ui >}}Unique converted sessions{{< /ui >}}: Conversiones donde todos los pasos se completaron con el mismo `@session.id`. -- Si seleccionas **User** (Usuario), el embudo requiere que el mismo usuario individual (`@user.id`) complete cada step (UI) / paso (generic) para que la conversión cuente. +- {{< ui >}}Unique converted users{{< /ui >}}: Conversiones donde el mismo usuario individual, rastreado por `@user.id`, completó todos los pasos. -- Si seleccionas **Account** (Cuenta), diferentes usuarios dentro de la misma cuenta pueden completar diferentes steps (UI) / pasos (generic) y la conversión sigue contando. En este case (incidencia), el embudo está vinculado a la faceta `@account.id`. +- {{< ui >}}Unique converted accounts{{< /ui >}}: Conversiones donde la misma cuenta, rastreada por `@account.id`, completó todos los pasos. Este análisis es útil para identificar conversiones completadas por usuarios que han iniciado sesión durante un período de tiempo más largo de lo que persiste la faceta `@user.id`. -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_refine_conversion.png" alt="La sección de la interfaz de usuario en la cual puedes seleccionar Sesión, Usuario o Cuenta para analizar tu conversión." style="width:50%;" >}} +- {{< ui >}}Total conversions{{< /ui >}}: Conversiones totales a través de sesiones, usuarios o cuentas. +- {{< ui >}}Time to convert{{< /ui >}}: Una vista de series temporales de conversiones por sesiones, usuarios o cuentas. -Una conversión se refiere al momento en el que un usuario responde a una llamada a la acción. Puedes medir la conversión mediante los siguientes atributos: +Para cualquier vista de análisis de conversión, puede elegir visualizar las conversiones por conteo o tasa, y ver los datos de todos los pasos o de pasos individuales. Para las vistas de conversión por usuario o cuenta, puede ajustar el marco de tiempo dentro del cual debe ocurrir una conversión. -- **Número de conversiones**: Número de usuarios que han pasado por el embudo que has definido. -- **Tasa de conversión**: Esta tasa es el porcentaje de usuarios que han entrado en el embudo y han convertido. -- **Tiempo de conversión**: El tiempo que tardó el usuario en completar los eventos de step (UI) / paso (generic). Esta opción no está disponible para la [visualización](#change-the-visualization) de pasos del embudo; si la seleccionas, la visualización cambia automáticamente a una serie temporal. +## Métricas de cálculo de conversión {#conversion-computing-metrics} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_conversion_measures.png" alt="La sección de la interfaz de usuario en la cual puedes seleccionar Sesión, Usuario o Cuenta para analizar tu conversión." style="width:50%;" >}} +### Cómo calcula Datadog las métricas de conversión {#how-datadog-computes-conversion-metrics} +Considere un embudo con eventos `A → B → C` y pasos de evento **A**, A, A, **B**, **C**, C. -Puedes medir estos atributos **en todos los pasos** o entre **pasos específicos**. +En este caso, Datadog cuenta una conversión. Cada **A** inicia un intento independiente. Debido a que los tres intentos se completan en el mismo evento **C**, Datadog cuenta solo el intento más temprano. -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_conversion.png" alt="Medir atributos en todos los pasos o en pasos específicos." style="width:60%;" >}} +Para ilustrar mejor, si el usuario realiza la secuencia de eventos **A**, A, A, **B**, **C**, C, **A**, **B**, **C**, Datadog cuenta dos conversiones. La primera conversión se completa con la secuencia **A**, A, A, **B**, **C**, y la segunda conversión se completa con la siguiente secuencia de **A**, **B**, **C**. -Utiliza el selector [**filter** (filtrar)](#add-filters) para filtrar los datos por tipos específicos de usuarios. Estos filtros se aplican a todos los steps (UI) / pasos (generic) del embudo. +
Cualquier acción o vista que no coincida con un paso del embudo no afecta la tasa de conversión paso a paso ni la general. Si todos los pasos del embudo ocurren en el orden correcto dentro de la ventana de conversión, Datadog cuenta la sesión como una única sesión convertida.
-A continuación, haz clic en un punto de datos para **investigar los atributos específicos** que podrían haber afectado a los índices de conversión, como la velocidad de carga de la página, la facilidad de navegación o la experiencia de pago. +Datadog calcula el tiempo promedio entre pasos promediando la duración total entre el primer y el último paso de cada conversión sobre el número total de pasos. -## Métricas informáticas de conversión +Si analiza su embudo por **usuario** o por **cuenta**, puede definir su marco de tiempo de conversión en horas o días desde el primer evento. El marco de tiempo predeterminado para las conversiones es un día (una ventana de 24 horas, no una fecha de calendario) para determinar si ocurrió una conversión. -### Cómo calcula Datadog las métricas de conversión -Considera un embudo con eventos `A → B → C` y steps (UI) / pasos (generic) de eventos `A, A, A, B, C, C`. -En este case (incidencia), Datadog cuenta una conversión. Esto se debe a que el cálculo de conversión coincide solo con la primera ocurrencia del evento **A** y la primera ocurrencia del evento **C** en la secuencia. +### Métodos de conteo de conversiones {#conversion-counting-methods} -Para ilustrarlo mejor, si el usuario realiza la secuencia de eventos `A, A, A, B, C, C, A, B, C`, Datadog cuenta dos conversiones. La primera conversión se completa con la secuencia `A, A, A, B, C, C` y la segunda conversión se completa con la siguiente secuencia `A, B, C`. +Al calcular sus conversiones, seleccione cómo se cuentan las conversiones eligiendo una opción de conversión **única** (sesiones, usuarios o cuentas) o la opción {{< ui >}}Total Conversion Count{{< /ui >}} en su visualización de conversión. -
Cualquier acción o vista que se produzca entre dos pasos de un embudo no afecta al step (UI) / paso (generic) por step (UI) / paso (generic) o a la tasa de conversión global. Siempre que step (UI) / paso (generic) A y C se produzcan en el orden correcto en una sesión determinada al menos una vez, cuenta como una única sesión convertida.
+- {{< ui >}}Unique{{< /ui >}}: Cuenta una conversión solo una vez por sesión, usuario o cuenta. Por ejemplo, si el usuario completa la secuencia del embudo `A → B → C` varias veces dentro de la misma sesión (`A, B, C, A, B, C`), cuenta como **una conversión**. -Datadog calcula el tiempo medio entre pasos promediando la duración total entre el primeo y el último step (UI) / paso (generic) de cada conversión sobre el número total de pasos. +- {{< ui >}}Total{{< /ui >}}: Cuenta una conversión cada vez que el mismo ID de sesión, usuario o cuenta completa el embudo definido. Usando el mismo ejemplo (`A, B, C, A, B, C`), este método cuenta **dos conversiones**. La configuración {{< ui >}}Total{{< /ui >}} cuenta flujos completos, no la cantidad de veces que se repite un paso intermedio. -Si analizas tu embudo por **usuario** o por **cuenta**, puedes definir tu plazo de conversión en horas o días desde el primer evento. El plazo predeterminado para las conversiones es de un día (una ventana de 24 horas, no una fecha de calendario) para determinar si se ha producido una conversión. +## Cambiar la visualización {#change-the-visualization} +Después de definir los eventos de paso y la medición de conversión, puede cambiar a una visualización diferente para comprender mejor las conversiones de usuario de su aplicación. -### Selecciona un método de recuento de conversiones -Cuando calcules tu conversión, selecciona cómo se cuentan las conversiones eligiendo **único** o **total** al lado de **Conversion count** (Número de conversiones) en la configuración de tu embudo. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_visualization_video.mp4" alt="Cambiar la visualización de Steps a Timeseries usando un menú desplegable." video=true >}} -- **Único**: Cuenta la conversión una sola vez por sesión, usuario o cuenta. Por ejemplo, si el usuario completa la secuencia del embudo `A → B → C` varias veces dentro de la misma sesión (por ejemplo, `A, B, C, A, B, C`), cuenta como **una conversión**. El ajuste `Unique` solo cuenta la primera conversión por sesión (o por usuario, según el alcance de tu análisis). -- **Total**: Cuenta una conversión cada vez que el mismo ID de sesión, usuario o cuenta completa el embudo definido. Utilizando el mismo ejemplo (`A, B, C, A, B, C`), este método cuenta **dos conversiones**. El ajuste `Total` cuenta los flujos completos, no el número de veces que se repite un step (UI) / paso (generic) intermedio. +### Timeseries{#timeseries} +Ver el embudo como Timeseries puede ser útil para comprender las tendencias de conversión. Puede seleccionar el período de tiempo para graficar la conversión y puede visualizar las conversiones como un recuento absoluto o una tasa. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_timeseries_view.png" alt="La visualización Timeseries, configurada para mostrar usuarios únicos convertidos diariamente durante la última semana." style="width:80%;" >}} -{{< img src="product_analytics/journeys/funnel_analysis/funnel_analysis_conversion.png" alt="Selecciona una medida de conversión, ya sea Única o Total, para determinar cómo se cuentan tus conversiones de sesión." style="width:80%;" >}} +### Query value{#query-value} +La visualización Query value muestra el valor actual de una métrica. -## Cambiar la visualización -Después de definir los eventos y la medición de la conversión del paso, puedes cambiar a una visualización diferente para comprender mejor las conversiones de los usuarios de tu aplicación. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_query_value.png" alt="La visualización Query value, configurada para mostrar el número total de sesiones convertidas únicas durante la última semana." style="width:80%;" >}} +### Lista principal {#top-list} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_change_viz.mp4" alt="Hacer clic en el menú desplegable de visualización para seleccionar otra vista" video=true >}} +La visualización de lista principal identifica los valores principales de una faceta según una medida elegida. +{{< img src="product_analytics/journeys/funnel_analysis/funnel_top_list.png" alt="La visualización de lista principal, configurada para mostrar las cuatro fuentes de conversión principales por continente." style="width:80%;" >}} -### Series temporales -Visualizar la conversión como una serie temporal puede ser útil para comprender las tendencias de conversión. Cada punto del eje x representa la conversión de la consulta identificada. +## Visualice impulsores de conversión y rutas de recorrido {#view-conversion-drivers-and-journey-paths} -Puedes seleccionar el periodo de tiempo para crear gráficos de conversión y visualizar las conversiones en porcentajes o en recuentos absolutos. +Para obtener más contexto sobre las conversiones y los abandonos de los usuarios, haga clic en un paso del embudo para acceder al análisis de conversión y a las rutas de recorrido. -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_timeseries.png" alt="Visualizar datos de conversión como series temporales." style="width:80%;" >}} +
El análisis de conversión está en Preview.
-### Valor de consulta +- **Análisis de conversión**: Visualice los impulsores de conversión, los recorridos de los usuarios, las reproducciones de usuario disponibles para conversiones y abandonos, y los detalles del usuario. -Los valores de consulta muestran el valor actual de la métrica de uso dada. + {{< img src="product_analytics/journeys/funnel_analysis/funnel_analysis_side_panel.png" alt="La vista del panel lateral después de hacer clic en un paso del embudo, que muestra los impulsores de conversión, las reproducciones disponibles y los usuarios convertidos." style="width:100%;" >}} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_query_value.png" alt="Visualizar datos de conversión como valor de consulta." style="width:80%;" >}} +- **Rutas de recorrido**: Visualice las rutas de usuario de conversión y abandono para la secuencia de pasos seleccionada, incluidas las rutas de ramificación a otros pasos fuera del embudo. -### Lista principal + {{< img src="product_analytics/journeys/funnel_analysis/funnel_journey_paths.png" alt="Una ruta de recorrido que muestra las cinco rutas de abandono principales después del paso 1 en el embudo." style="width:100%;" >}} -Visualiza los principales valores de una faceta en función de la medida elegida. +## Compartir un embudo {#share-a-funnel} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_toplist.png" alt="Visualizar datos de conversión como una lista de principales." style="width:80%;" >}} +Los embudos se pueden compartir con sus equipos en [tableros][3] para analizar la conversión junto con otras métricas de telemetría, o en un [Notebook][4] para usarlos en informes. -## Navegar por los gráficos de embudo -Para obtener más contexto sobre las bajas de usuarios, haz clic en el gráfico del embudo para abrir un panel lateral que contiene información adicional. A continuación, navega entre los steps (UI) / pasos (generic) para ver: +Puede compartir toda la visualización o widgets individuales. -- **Rendimiento del step (UI) / paso (generic)**: Consulta las métricas relacionadas con la conversión (por ejemplo, la tasa de conversión, las sesiones abandonadas y el tiempo medio de conversión). -- **Rutas de ramifcación del step (UI) / paso (generic) anterior**: Descubre los otros caminos que toman los usuarios en lugar de los previstos. Esta sección solo está disponible cuando se mira un step (UI) / paso (generic) entre dos vistas en un embudo. -- **Problemas que podrían estar afectando a la conversión**: Consulta los principales problemas que podrían estar afectando a las conversiones e investígalos más a fondo con los enlaces a RUM, Error Tracking y Session Replay. +- Comparta toda la visualización en Notebooks y tableros: + {{< img src="product_analytics/journeys/funnel_analysis/funnels_share_export.png" alt="La opción Compartir de la visualización expandida, que muestra la opción adicional para Exportar a PNG " style="width:100%;" >}} -{{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_metrics.png" alt="Haz clic en la vista del embudo para ver un contexto adicional sobre los abandonos de usuarios." style="width:90%;" >}} +- Comparta widgets individuales desde un tablero: -## Compartir un embudo + {{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_share_dashboard.png" alt="Comparta un widget haciendo clic en el icono de exportación en la parte superior derecha del widget" style="width:100%;" >}} -Puedes compartir embudos con tus equipos en [dashboards][5], para analizar la conversión junto con otras métricas de telemetría, o en un [notebook][6], para utilizarlos en informes. - -Puedes compartir la visualización completa o widgets individuales. - -- Comparte la visualización completa en notebooks y dashboards: - - {{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_share_funnel.png" alt="Compartir toda la visualización haciendo clic en Export (Exportar)" style="width:90%;" >}} - -- Comparte widgets individuales desde un dashboard: - - {{< img src="product_analytics/journeys/funnel_analysis/pana_funnel_share_dashboard.png" alt="Compartir un widget haciendo clic en el icono de exportación en la parte superior derecha del widget" style="width:90%;" >}} - -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://app.datadoghq.com/product-analytics/user-journey/funnel -[5]: /es/product_analytics/dashboards/ -[6]: /es/notebooks/ \ No newline at end of file +[1]: https://app.datadoghq.com/product-analytics/ +[2]: https://app.datadoghq.com/product-analytics/user-journey/funnel +[3]: /es/product_analytics/dashboards/ +[4]: /es/notebooks/ \ No newline at end of file diff --git a/hugo/content/es/product_analytics/charts/pathways.md b/hugo/content/es/product_analytics/charts/pathways.md index 9ffac1d3799..c8c608e6fb5 100644 --- a/hugo/content/es/product_analytics/charts/pathways.md +++ b/hugo/content/es/product_analytics/charts/pathways.md @@ -10,66 +10,65 @@ further_reading: text: Gráficos - link: /dashboards/widgets/sankey/ tag: Documentación - text: Crear widgets de Sankey en dashboards -title: Diagramas de rutas + text: Cree widgets de Sankey en los paneles +title: Pathways --- +## Descripción general {#overview} -## Información general +Los diagramas de Pathways le permiten visualizar todos los recorridos de los usuarios a través de su aplicación para analizar la ruta crítica. -Los diagramas de rutas te permiten visualizar todos los recorridos del usuario en tu aplicación para analizar la ruta crítica. +{{< img src="/product_analytics/journeys/pathways/ga_pathway_diagrams_page.png" alt="El diagrama de Pathways predeterminado para una aplicación" style="width:90%;" >}} -{{< img src="/product_analytics/journeys/pathways/ga_pathway_diagrams_page.png" alt="Diagrama de rutas por defecto para una aplicación" style="width:90%;" >}} +Cada nodo representa una visualizar que el usuario visitó. El grosor de cada nodo representa el recuento de sesiones de usuario en esa página. Una página con menos visitantes tiene un nodo más delgado en el diagrama. -Cada nodo representa una vista visitada por el usuario. El grosor de cada nodo representa el recuento de sesiones de usuario en esa página. Una página con menos visitantes tiene un nodo más fino en el diagrama. +Si un usuario visita la misma página varias veces durante su sesión, esa página solo se cuenta una vez. -Si un usuario visita la misma página varias veces durante su sesión, esa página sólo se cuenta una vez. +Los eventos de acción no son compatibles con el diagrama de Pathways. -Los eventos de acciones no son compatibles con el diagrama de rutas. +## Cree un diagrama de Pathways {#build-a-pathways-diagram} -## Crear un diagrama de rutas +### Visualice el diagrama predeterminado {#view-the-default-diagram} -### Ver el diagrama por defecto +1. Navegue a [{{< ui >}}Product Analytics{{< /ui >}} > {{< ui >}}Charts{{< /ui >}}][1]. +2. Haga clic en {{< ui >}}Pathways{{< /ui >}} si aún no está seleccionado. Esto muestra la visualización predeterminada que representa los recorridos de usuario más populares en su aplicación. -1. Ve a [**Product Analytics > Charts** (Análisis de productos > Gráficos)][1]. -2. Haz clic en **Pathways** (Rutas) si aún no está seleccionado. Esto muestra la visualización predeterminada que representa los recorridos de usuario más populares en tu aplicación. +### Inicie o finalice el diagrama en una visualizar determinada {#start-or-end-the-diagram-at-a-given-view} -### Iniciar o finalizar el diagrama en una vista determinada +Puede usar el menú de la izquierda para personalizar este diagrama y mostrar: +- los pasos que siguieron los usuarios *después de* visitar una visualizar determinada +- los pasos que siguieron los usuarios *antes de* visitar una visualizar determinada -Puedes utilizar el menú de la izquierda para personalizar este diagrama y su visualización: -- los pasos que dieron los usuarios *después* de visitar una vista determinada -- los pasos que dieron los usuarios *antes* de visitar una vista determinada +El ejemplo a continuación muestra los cuatro pasos que siguen los usuarios en los Estados Unidos después de visitar `/department/lighting`: -El siguiente ejemplo muestra los cuatro pasos que siguen los usuarios de Estados Unidos después de visitar `/department/lighting`: +{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img2.png" alt="Un diagrama de Pathways personalizado para una aplicación" style="width:90%;" >}} -{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img2.png" alt="Diagrama de rutas personalizado para una aplicación" style="width:90%;" >}} +### Graficar todas las visualizar que contienen una frase determinada {#graph-all-views-containing-a-given-phrase} -### Graficar todas las vistas que contienen una frase dada +Los diagramas de Pathways admiten [comodines de Datadog][2], lo que le permite crear un diagrama de todas las visualizar que contienen una frase determinada. -Los diagramas de rutas admiten [comodines de Datadog][2], lo que permite crear un diagrama de todas las vistas que contengan una frase determinada. +Para hacer coincidir varias rutas, escriba un comodín en lugar de elegir un solo nombre de visualizar. El siguiente ejemplo muestra los cinco pasos que siguen los usuarios después de visitar cualquier visualizar que coincida con `/department/*`: -Para que coincidan varias rutas, escribe un comodín en lugar de elegir un único nombre de vista. El siguiente ejemplo muestra los cinco pasos que siguen los usuarios después de visitar cualquier vista que coincida con `/department/*`: +{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img3.png" alt="Un diagrama de Pathways que utiliza un comodín para hacer coincidir varias rutas" style="width:90%;" >}} -{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img3.png" alt="Diagrama de rutas que utiliza un comodín para emparejar varias rutas" style="width:90%;" >}} +## Analizar un diagrama de Pathways {#analyze-a-pathways-diagram} -## Analizar un diagrama de rutas +Puede pasar el cursor sobre un nodo del diagrama para ver la cantidad de sesiones que incluyeron visitas a esa visualizar. -Puedes pasar el ratón por encima de un nodo del diagrama para ver el número de sesiones que incluyeron visitas a esa vista. +Haga clic en un nodo para obtener una lista de opciones de análisis, como ver una muestra de [Session Replay][3] o crear un diagrama de Pathways que comience con esa visualizar. -Haz clic en un nodo para acceder a la lista de opciones de análisis, como la visualización de una muestra de [Session Replay][3] o la creación de un diagrama de rutas que comience con esa vista. +{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img4.png" alt="El menú de acciones de un nodo de diagrama de Pathways" style="width:90%;" >}} -{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img4.png" alt="Menú de acciones del nodo de un diagrama de rutas" style="width:90%;" >}} +### Convertir el diagrama en un embudo {#convert-the-diagram-to-a-funnel} -### Convertir el diagrama en un embudo +1. Desde la página del diagrama de Pathways, haga clic en el botón {{< ui >}}Build Funnel{{< /ui >}}. +2. En el diagrama de Pathways, haga clic en los nodos de las visualizar que desea incluir en el embudo. +3. Haga clic en {{< ui >}}Create Funnel From Selection{{< /ui >}}. -1. En la página del diagrama de rutas, haz clic en el botón **Build Funnel** (Crear embudo). -2. En el diagrama de rutas, haz clic en los nodos de las vistas que desees incluir en el embudo. -3. Haz clic en **Create Funnel From Selection** (Crear embudo a partir de la selección). +{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img5.png" alt="Una conversión de Pathways a embudo en proceso" style="width:90%;" >}} -{{< img src="/product_analytics/journeys/pathways/pana_pathway_page_img5.png" alt="Ruta al embudo de conversión en curso" style="width:90%;" >}} - -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/product-analytics/user-journey/pathways [2]: /es/real_user_monitoring/explorer/search_syntax/#wildcards -[3]: /es/product_analytics/session_replay/ \ No newline at end of file +[3]: /es/session_replay/ \ No newline at end of file diff --git a/hugo/content/es/real_user_monitoring/operations_monitoring.md b/hugo/content/es/real_user_monitoring/operations_monitoring.md new file mode 100644 index 00000000000..d759ac3e043 --- /dev/null +++ b/hugo/content/es/real_user_monitoring/operations_monitoring.md @@ -0,0 +1,434 @@ +--- +description: Haga un seguimiento de las operaciones técnicas críticas dentro de los + recorridos orientados al usuario para identificar exactamente cuándo y por qué los + usuarios no completan los flujos de trabajo clave. +further_reading: +- link: /monitors/create/types/real_user_monitoring/ + tag: Documentación + text: Obtenga más información sobre RUM +- link: /real_user_monitoring/guide/best-practices-for-operations-setup/ + tag: Guía + text: Mejores prácticas para configurar el seguimiento de operaciones +- link: /real_user_monitoring/guide/best-practices-for-creating-slos-on-operations/ + tag: Guía + text: Mejores prácticas para crear SLO para operaciones de RUM +title: Seguimiento de operaciones +--- +## Descripción general {#overview} + +{{< callout header="Vista previa" btn_hidden="true" >}} +El seguimiento de operaciones está en Vista previa. +{{< /callout >}} + +{{< img src="/real_user_monitoring/operations_monitoring/operations-monitoring-overview-1.png" alt="Pestaña de operaciones en RUM > Performance Monitoring" style="width:100%;" >}} + +En Datadog Real User Monitoring (RUM), un [recorrido][9] representa un área importante de su aplicación orientada al usuario, como el pago, el inicio de sesión o la búsqueda. Cada recorrido incluye operaciones, que son los pasos técnicos críticos que hacen que la experiencia funcione. + +- Los equipos de negocios utilizan **recorridos** para rastrear y mejorar la conversión de usuarios. +- Los equipos de ingeniería utilizan **operaciones** para hacer un seguimiento y minimizar las fallas técnicas que afectan los momentos clave del usuario. + +Puede crear operaciones con las API del SDK de RUM, directamente en Datadog o mediante programación con Datadog API. + +Por ejemplo, la experiencia de pago de una plataforma de comercio electrónico es un recorrido. Dentro de él, las operaciones pueden incluir ingresar los detalles de pago, guardar un método de pago y completar una compra. Después de crear las operaciones, Datadog RUM mide el rendimiento de cada operación, incluido el volumen de ejecución, la tasa de finalización y la tasa de fallas. Medir el estado de las operaciones le permite identificar exactamente cuándo y por qué los usuarios pueden no convertir en su recorrido. + + +La siguiente tabla muestra ejemplos adicionales de recorridos y sus operaciones de recorrido asociadas por industria. + +| Industria | Recorrido | Operaciones de recorrido | +|----------------|----------|----------------------------------------------------------------------------------------------------------------------------------| +| Red social | Perfil | Los usuarios pueden cargar su perfil
Los usuarios pueden subir una imagen
Los usuarios pueden actualizar su estado | +| Comercio electrónico | Pago | Los usuarios pueden ingresar los detalles de pago
Los usuarios pueden guardar su método de pago
Los usuarios pueden pagar | +| Streaming | Búsqueda | Los usuarios pueden encontrar resultados para su búsqueda
Los usuarios pueden cargar la descripción de un título
Los usuarios pueden comenzar a ver el tráiler | +| CRM | Cotización | Los usuarios pueden iniciar una nueva cotización
Los usuarios pueden agregar partidas a la cotización
Los usuarios pueden enviar una cotización a los destinatarios | + +## Requisitos previos {#prerequisites} + +- [RUM without Limits][11] debe estar habilitado en su organización. +- Para crear operaciones con las API del SDK, descargue una versión compatible del Datadog RUM SDK con API del lado del cliente para definir operaciones: + - [Browser (6.20.0)][1] + - [Android (3.1.0)][2] + - [iOS (3.1.0)][3] + - [Flutter (3.0.0)][7] + - **Nota**: En Flutter Web, las operaciones se enrutan a través del Browser SDK, lo cual requiere que la `feature_operation_vital` función experimental esté habilitada. + - [Kotlin Multiplatform (1.4.0)][4] + - [React Native (3.0.0)][5] + - [Roku (1.4.0)][6] + +## Crear operaciones con las API del SDK {#create-operations-with-the-sdk-apis} + +Utilice las API del SDK para definir sus operaciones. + +### Iniciar una operación {#start-an-operation} + +Toda operación debe iniciarse llamando a `startOperation` (algunos SDK pueden usar el nombre heredado de esta API - `startFeatureOperation`). + +{{< tabs >}} +{{% tab "Browser" %}} + +```javascript +DD_RUM.init({ +..., +enableExperimentalFeatures: ["feature_operation_vital"], // you need to have this flag turned on for the API to work +}) + +startFeatureOperation: ( +name: string, +options?: { + operationKey?: string, + context?: Context, + description?: string, +}) => void +``` + +{{% /tab %}} + +{{% tab "Android" %}} + +```kotlin +GlobalRumMonitor.get().startOperation( + name: String, + operationKey: String?, + options: OperationOptions, + attributes: Map +) +``` + +{{% /tab %}} + +{{% tab "iOS" %}} + +```swift +RUMMonitor.shared().startOperation( + name: String, + operationKey: String?, + attributes: [AttributeKey: AttributeValue]?, + options: OperationOptions? +) +``` +{{% /tab %}} + +{{% tab "React Native" %}} + +```javascript +DdRum.startFeatureOperation( + name: string, + operationKey?: string, + attributes?: Record +) + +``` +{{% /tab %}} + +{{% tab "Flutter" %}} + +```dart +DatadogSdk.instance.rum?.startFeatureOperation( + String name, { + String? operationKey, + Map attributes = const {}, + } +) +``` +Para usar operaciones en Flutter Web, habilite la función experimental `feature_operation_vital` en el Browser SDK. +{{% /tab %}} + +{{% tab "Roku" %}} + +```brightscript +m.global.datadogRumAgent@.startOperation( + name as string, + operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations + context = {} as object ' optional: AssocArray of custom attributes +) +``` +{{% /tab %}} +{{< /tabs >}} + +
El nombre de la operación solo puede contener letras, dígitos o los caracteres - _ . @ $, y no puede contener espacios en blanco.
+ +### Detener una operación con éxito {#stop-an-operation-with-success} + +Toda operación iniciada debe tener una detención. Use `succeedOperation` para detener una operación con un resultado exitoso (algunos SDK pueden usar el nombre heredado de esta API - `succeedFeatureOperation`). + +{{< tabs >}} +{{% tab "Browser" %}} + +```javascript +succeedFeatureOperation: ( +name: string, +options?: { + operationKey?: string, + context?: Context, + description?: string, +}) => void +``` + +{{% /tab %}} + +{{% tab "Android" %}} + +```kotlin +GlobalRumMonitor.get().succeedOperation( + name: String, + operationKey: String?, + attributes: Map +) +``` + +{{% /tab %}} + +{{% tab "iOS" %}} + +```swift +RUMMonitor.shared().succeedOperation( + name: String, + operationKey: String?, + attributes: [AttributeKey: AttributeValue]? +) +``` + +{{% /tab %}} + +{{% tab "React Native" %}} + +```javascript +DdRum.succeedFeatureOperation( + name: string, + operationKey?: string, + attributes?: Record +) +``` + +{{% /tab %}} + +{{% tab "Flutter" %}} + +```dart +DatadogSdk.instance.rum?.succeedFeatureOperation( + String name, { + String? operationKey, + Map attributes = const {}, + } +) +``` +Para usar operaciones en Flutter Web, habilite la función experimental `feature_operation_vital` en el Browser SDK. + +{{% /tab %}} + +{{% tab "Roku" %}} + +```brightscript +m.global.datadogRumAgent@.succeedOperation( + name as string, + operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations + context = {} as object ' optional: AssocArray of custom attributes +) +``` +{{% /tab %}} +{{< /tabs >}} + +
El operationKey debe ser el mismo en el evento de inicio y fin de la operación.
+ +### Detener una operación con error {#stop-an-operation-with-failure} + +Toda operación iniciada debe tener una detención. Use `failOperation` para detener una operación con un resultado de error (algunos SDK pueden usar el nombre heredado de esta API - `failFeatureOperation`). + +{{< tabs >}} +{{% tab "Browser" %}} + +```javascript +DD_RUM.init({ +..., +enableExperimentalFeatures: ["feature_operation_vital"], // this flag needs to be enabled for the API to work +}) + +failFeatureOperation: ( +name: string, +failureReason: FailureReason, //'error' | 'abandoned' | 'other' +options?: { + operationKey?: string, + context?: Context, + description?: string, +}) => void +``` + +{{% /tab %}} + +{{% tab "Android" %}} + +```kotlin +GlobalRumMonitor.get().failOperation( + name: String, + operationKey: String?, + failureReason: FailureReason, // ERROR, ABANDONED, OTHER + attributes: Map +) +``` + +{{% /tab %}} + +{{% tab "iOS" %}} + +```swift +RUMMonitor.shared().failOperation( + name: String, + operationKey: String?, + reason: RUMFeatureOperationFailureReason, // .error, .abandoned, .other + attributes: [AttributeKey: AttributeValue] +) +``` +{{% /tab %}} + +{{% tab "Roku" %}} + +```brightscript +m.global.datadogRumAgent@.failOperation( + name as string, + failureReason as string, ' "error", "abandoned", or "other" + operationKey = invalid as dynamic, ' optional: string or invalid for unkeyed operations + context = {} as object ' optional: AssocArray of custom attributes +) +``` +{{% /tab %}} + +{{% tab "React Native" %}} + +```javascript +DdRum.failFeatureOperation( + name: string, + operationKey?: string, + reason: FeatureOperationFailure, // 'ERROR' | 'ABANDONED' | 'OTHER' + attributes: Record +) + +``` +{{% /tab %}} + +{{% tab "Flutter" %}} + +```dart +DatadogSdk.instance.rum?.failFeatureOperation( + String name, + RumFeatureOperationFailureReason failureReason, // .error, .abandoned, .other + { + String? operationKey, + Map attributes = const {}, + } +) +``` +Para usar operaciones en Flutter Web, habilite la función experimental `feature_operation_vital` en el Browser SDK. + +{{% /tab %}} + +{{< /tabs >}} + +### Paralelización {#parallelization} +Es posible que tenga casos en los que los usuarios inicien varias operaciones de recorrido en paralelo. Para rastrearlos individualmente, utilice el `operationKey` definido al llamar a `startOperation`. Debe reutilizar el mismo `operationKey` más adelante en otras API, por ejemplo, al llamar a `succeedOperation`. + +
Las operaciones que se han iniciado pero no se han detenido explícitamente se terminan automáticamente cuando expira la sesión RUM. Esas se marcan como fallidas, con @operation.failure_reason:timeout.

Si se llamó a una API de detención de operación que no se inició en primer lugar, el evento de detención emitido por el SDK se descarta durante la ingesta.
+ +## Crear operaciones desde Datadog {#create-operations-from-datadog} + +Puede crear una operación desde el catálogo de operaciones o desde el informe de detalles de un recorrido: + +- **Catálogo de operaciones**: Navegue a {{< ui >}}RUM{{< /ui >}} > {{< ui >}}Operations{{< /ui >}}, luego haga clic en {{< ui >}}New Operation{{< /ui >}} +- **Journey Monitoring**: Navegue a {{< ui >}}Digital Experience{{< /ui >}} > {{< ui >}}Journey Monitoring{{< /ui >}}, seleccione un recorrido, navegue a su {{< ui >}}Details Report{{< /ui >}}, luego haga clic en {{< ui >}}New Operation{{< /ui >}} + +{{< img src="/real_user_monitoring/operations_monitoring/operations-monitoring-web-ui.png" alt="Página para crear operaciones desde la interfaz de usuario de Datadog" style="width:100%;" >}} + +
Cada aplicación RUM admite hasta 1000 operaciones creadas desde Datadog a través de la interfaz de usuario o la API. No existe un límite a nivel de organización para las operaciones creadas directamente en Datadog.
+ +### Paso 1: Ingrese los detalles de la operación y seleccione la categoría de la operación {#step-1-enter-operation-details-and-select-the-operation-category} + +Seleccione la aplicación RUM de la operación e ingrese un nombre para mostrar. Opcionalmente, puede agregar una descripción a la operación. + +Seleccione la **categoría** de la operación para determinar los tipos de eventos RUM compatibles con las condiciones de inicio, éxito y falla. + +| Categoría de operación | Resumen | Tipos de eventos compatibles | +|----------------------------------|----------|----------------------------------------------------------------------------------------------------------------------| +| Carga de componentes | Mida cuánto tiempo tarda en completarse una acción iniciada por el usuario | Inicio: Acción
Éxito: Recurso o acción personalizada
Falla: Recurso, error o acción personalizada | +| Envío de formulario | Mida cuánto tiempo tarda en completarse un envío de formulario o una mutación | Inicio: Acción
Éxito: Recurso, visualización o acción personalizada
Falla: Recurso, error o acción personalizada | +| Carga de página o pantalla | Mida cuánto tiempo tarda una página o pantalla en cargar y mostrar datos | Inicio: Visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada | +| Navegación de página o pantalla | Mida cuánto tiempo tarda en completarse una navegación de una página o pantalla a otra | Inicio: Acción o visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada | +| Personalizada | Defina una operación personalizada con cualquier combinación de tipos de eventos | Inicio: Acción o visualización
Éxito: Recurso, visualización o acción personalizada
Error: Recurso, error o acción personalizada | + +### Paso 2: Defina el evento de inicio {#step-2-define-the-start-event} + +Cada operación debe tener un evento RUM de inicio. Las operaciones pueden comenzar con un evento de acción o de visualización, según la categoría de operación seleccionada. + +### Paso 3: Defina las condiciones de éxito {#step-3-define-the-success-conditions} + +Cada operación debe tener una condición para finalizar en un éxito. Las operaciones pueden finalizar en éxito con un evento de recurso, visualización o acción personalizada, según la categoría de operación seleccionada. + +### Paso 4: Defina las condiciones de error {#step-4-define-the-failure-conditions} + +Cada operación debe tener una condición para finalizar en un error: +- **Error** los errores pueden finalizar como un recurso, error o acción personalizada. +- **Abandono** los errores se pueden activar en caso de que el usuario navegue fuera de la visualización inicial antes de que finalice la operación. + +
Espere hasta 15 minutos para que las métricas aparezcan en el catálogo de operaciones después de crear una operación en Datadog a través de la interfaz de usuario o la Datadog API.
+ +## Cree operaciones con la Datadog API {#create-operations-with-the-datadog-api} + +Las operaciones también se pueden crear a través de la [Datadog API][10]. + +## Edite operaciones {#edit-operations} + +En el catálogo de operaciones, haga clic en el icono del lápiz para editar una operación. Puede editar la descripción de cualquier operación, independientemente de cómo se haya creado. Las operaciones creadas a través de la interfaz de usuario o la API se pueden editar por completo (no solo la descripción). + +## Haga un seguimiento de su disponibilidad en Datadog {#monitor-your-availability-on-datadog} + +{{< img src="/real_user_monitoring/operations_monitoring/operations-monitoring-catalog-1.png" alt="Pestaña de operaciones en RUM > Performance Monitoring" style="width:100%;" >}} + +Después de crear operaciones con el SDK de RUM, directamente en Datadog, o con la Datadog API, haga un seguimiento de ellas navegando a {{< ui >}}RUM{{< /ui >}} > {{< ui >}}Performance Monitoring{{< /ui >}} > {{< ui >}}Operations{{< /ui >}}. + +Datadog agrupa todas las operaciones con el mismo nombre en un catálogo. + +Cada operación tiene dos métricas predeterminadas calculadas sobre su tráfico completo, ingerido y sin muestreo: + +- `rum.measure.operation`, que cuenta el volumen de operaciones reportadas a Datadog +- `rum.measure.operation.duration`, que mide el tiempo transcurrido entre el inicio y el final de todas las operaciones reportadas a Datadog + +Ambas métricas se conservan durante 15 meses e incluyen varias dimensiones: + +- `operation.name`, que se define en el lado del cliente +- `operation.status`, que es éxito o fracaso +- `operation.failure_reason`, que puede ser un error, un abandono u otro + +Esas métricas están incluidas en el precio de RUM Measure y están disponibles para todos los clientes de RUM without Limits que definan una o más operaciones. + +## Investigue las causas raíz con IA {#investigate-root-causes-with-ai} + +Puede ejecutar una investigación con el agente sobre una sola operación directamente desde la página de Operaciones. El agente analiza tanto la tasa de éxito como la latencia de la operación y presenta investigaciones enfocadas para cada modo de falla (errores, tiempos de espera, abandono) y para regresiones de latencia. Para obtener más información, consulte [Operation AI Investigation][8]. + +## Configure filtros de retención {#configure-retention-filters} + +Las operaciones son un nuevo tipo de evento en RUM. Las operaciones están vinculadas a una sesión de RUM, pero pueden representar múltiples RUM Views. Las operaciones pueden ser seleccionadas en [filtros de retención][12]. Esto le permite alinear su estrategia de retención con los recorridos que son fundamentales para la experiencia de sus usuarios. Por ejemplo, puede mantener mediante programación las sesiones RUM en las que fallaron operaciones específicas o que tardan más de lo deseado. + +{{< img src="/real_user_monitoring/operations_monitoring/operations-monitoring-3-temp.png" alt="Pestaña de operaciones en RUM > Performance Monitoring" style="width:80%;" >}} + +De manera similar a las métricas, esos eventos incluyen atributos específicos que puede utilizar en los filtros de retención: + +- `@operation.name` +- `@operation.status` +- `@operation.failure_reason` +- `@operation.duration` +- `@operation.start_view.name` +- `@operation.end_view.name` + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://github.com/DataDog/browser-sdk/releases/tag/v6.20.0 +[2]: https://github.com/DataDog/dd-sdk-android/releases/tag/3.1.0 +[3]: https://github.com/DataDog/dd-sdk-ios/releases/tag/3.1.0 +[4]: https://github.com/DataDog/dd-sdk-kotlin-multiplatform/releases/tag/1.4.0 +[5]: https://github.com/DataDog/dd-sdk-reactnative/releases/tag/3.0.0 +[6]: https://github.com/DataDog/dd-sdk-roku/releases/tag/1.4.0 +[7]: https://github.com/DataDog/dd-sdk-flutter/releases/tag/datadog_flutter_plugin%2Fv3.0.0 +[8]: /es/real_user_monitoring/ai_investigations/operation_ai_investigation/ +[9]: /es/journey_monitoring/ +[10]: /es/api/latest/rum-operations/ +[11]: /es/real_user_monitoring/rum_without_limits/ +[12]: /es/real_user_monitoring/rum_without_limits/retention_filters/ \ No newline at end of file diff --git a/hugo/content/es/security/automation_pipelines/modify_severity.md b/hugo/content/es/security/automation_pipelines/modify_severity.md new file mode 100644 index 00000000000..d5b4c8fd62f --- /dev/null +++ b/hugo/content/es/security/automation_pipelines/modify_severity.md @@ -0,0 +1,128 @@ +--- +further_reading: +- link: /security/automation_pipelines + tag: Documentación + text: Pipelines de automatización +- link: /security/manual_severity_adjustment/ + tag: Documentación + text: Ajuste de gravedad +products: +- icon: cloud-security-management + name: Cloud Security + url: /security/cloud_security_management/ +- icon: security-code-security + name: Code Security + url: /security/code_security/ +- icon: app-sec + name: App and API Protection + url: /security/application_security/ +- icon: security-workload-security + name: Workload Protection + url: /security/workload_protection/ +title: Reglas de modificador de gravedad +--- +{{< product-availability >}} + +Configure reglas de modificador de gravedad para ajustar la gravedad de los hallazgos y reflejar el contexto empresarial de su organización. Por ejemplo, reduzca la gravedad de los hallazgos en entornos aislados para disminuir el ruido, o aumente la gravedad de los hallazgos en bases de datos que contienen información de identificación personal (PII) para que reciban atención inmediata. + +## Crear una regla de modificador de gravedad {#create-a-severity-modifier-rule} + +1. En Datadog, vaya a **Security** > **Settings** > [**Findings Automation**][2]. Haga clic en **Add a New Rule**, luego seleccione **Modify Severity Level**. Se abre la página Create a New Rule. +1. En **Rule name**, ingrese un nombre descriptivo para la regla; por ejemplo, "Increase severity for services accessing PII databases". +1. Agregue los criterios de su regla en los siguientes campos: + - **Cualquiera de estos tipos**: Los tipos de hallazgos que la regla debe verificar. Los tipos disponibles incluyen: + - Vulnerabilidad de código en tiempo de ejecución + - Vulnerabilidad de código estático + - Vulnerabilidad de biblioteca + - Secreto + - Infraestructura como código + - Vulnerabilidad de imagen de contenedor + - Vulnerabilidad de servidor + - Configuración incorrecta + - Ruta de ataque + - Riesgo de identidad + - Seguridad de API + - Actividad de carga de trabajo + - **Cualquiera de estas etiquetas o atributos**: Las etiquetas o atributos del recurso que deben coincidir para que se aplique la regla. +1. Opcionalmente, haga clic en **Add Severity** para filtrar los hallazgos por nivel de gravedad. La regla coincide con la gravedad ajustada por Datadog de cada hallazgo, antes de cualquier ajuste definido por el usuario. +1. Defina la acción de modificación de gravedad: + - **Establecer en un nivel específico**: Establece los hallazgos coincidentes en una gravedad fija. Elija entre **Información / Ninguna**, **Baja**, **Media**, **Alta** o **Crítica**. +
Info / None is only valid for some finding types; see Severity floors by finding type.
+ - **Shift up or down one level**: Increases or decreases the severity of matching findings by one level. See [Severity floors by finding type](#severity-floors-by-finding-type) for the lowest severity a finding type can shift down to, and [Evaluation order](#evaluation-order) for what happens when a finding is already at that bound. +1. Opcionalmente, ingrese una **Description** que explique por qué se aplica la regla. Este texto aparece en el panel de desglose de gravedad cuando un usuario ve un hallazgo modificado. +1. Haga clic en **Guardar**. La regla se aplica a los nuevos hallazgos de inmediato y comienza a verificar los hallazgos existentes dentro de la próxima hora. + +**Nota**: No puede usar `@severity` ni `@severity_details.user_adjusted` en la consulta de la regla. Las reglas de modificación de gravedad se evalúan con respecto a la gravedad ajustada por Datadog (`@severity_details.adjusted.value`), no al valor `@severity` almacenado en el hallazgo. + +## Evaluation order {#evaluation-order} + +Las reglas de modificación de gravedad son el primer paso en la canalización de automatización y se ejecutan antes que las mute rules, due date, inbox y ticket creation rules. Dentro de las reglas de modificador de gravedad, Datadog utiliza una política de primera coincidencia: los hallazgos se evalúan según sus reglas en orden, y se aplica la primera regla que coincida. No se evalúan más reglas de modificador de gravedad para ese hallazgo. + +Una regla cuenta como coincidencia solo si la aplicación de su acción cambiara la gravedad del hallazgo. Si la acción dejara la gravedad sin cambios (por ejemplo, una shift action que ya ha alcanzado un límite de gravedad, o una set action que apunta a la gravedad actual del hallazgo), la regla no coincide y Datadog continúa evaluando las reglas de modificador de gravedad posteriores para ese hallazgo. + +Debido a que las reglas de modificación de gravedad se ejecutan primero, todas las downstream automation rules —incluidas las mute rules— ven la gravedad modificada cuando se evalúan. + +## Identify modified findings {#identify-modified-findings} + +Los hallazgos afectados por una regla de modificador de gravedad muestran un indicador visual en las vistas de lista del explorador y en el encabezado del panel lateral del hallazgo. Al pasar el cursor sobre el indicador se muestra la regla de automatización responsable del cambio: + +{{< img src="security/automation_pipelines/severity_pill_popover.png" alt="Un elemento del explorador que muestra una píldora de gravedad con un indicador de modificador. Un elemento emergente proporciona más información sobre la regla de automatización responsable de ajustar la gravedad del hallazgo." style="width:65%;" >}} + +Para los hallazgos que tienen una puntuación CVSS (vulnerabilidad de imagen de contenedor, vulnerabilidad de servidor, vulnerabilidad de biblioteca y vulnerabilidad de código en tiempo de ejecución), la sección de gravedad del panel lateral también incluye un desglose que muestra: +- El nivel de gravedad original, la puntuación CVSS y el vector CVSS antes de la modificación. +- El nombre de la regla de automatización que se activó, con un enlace directo a la regla. +- El nivel de gravedad resultante y la puntuación CVSS ajustada. + +{{< img src="security/automation_pipelines/severity_breakdown.png" alt="Un panel lateral de hallazgo que muestra el desglose de gravedad, con la gravedad original, la puntuación CVSS y el vector CVSS; la regla de automatización que activó el cambio; y el nivel de gravedad resultante y la puntuación CVSS ajustada." style="width:100%;" >}} + +## Severity floors by finding type {#severity-floors-by-finding-type} + +No todos los tipos de hallazgos utilizan la misma escala de gravedad. La siguiente tabla muestra la gravedad más baja disponible para cada tipo de hallazgo: + +| Finding type | Lowest severity | +|---|---| +| API Security | Info | +| Attack Path | Info | +| Identity Risk | Info | +| Misconfiguration | Info | +| Workload Activity | Info | +| Container Image Vulnerability | None | +| Host Vulnerability | None | +| Library Vulnerability | None | +| Infrastructure as Code | Low | +| Runtime Code Vulnerability | Low | +| Secret | Low | +| Static Code Vulnerability | Low | + +**Info / None** is not available for finding types that use **Low** as their lowest severity. Incluir dichos tipos de hallazgos en la regla y seleccionar **Info / None** resulta en un error de validación. + +## Findings with Unknown severity {#findings-with-unknown-severity} + +Las reglas de modificador de gravedad manejan los hallazgos con una gravedad **Unknown** de la siguiente manera: + +- **Shift action**: La regla no coincide con los hallazgos con **Unknown** severity. Debido a que la regla no coincide, las reglas de modificador de gravedad posteriores aún pueden evaluarse para ese hallazgo. +- **Set action**: Si la gravedad **Unknown** se incluye en el selector de gravedad de la regla, la regla coincide y reemplaza **Unknown** con la gravedad objetivo especificada. No puede establecer la gravedad de un hallazgo en **Unknown** usando una regla de modificador de gravedad. + +## Vulnerability findings and CVSS scores {#vulnerability-findings-and-cvss-scores} + +Para los hallazgos de vulnerabilidad que tienen una puntuación CVSS ajustada por Datadog, un modificador de gravedad también actualiza la puntuación ajustada almacenada en `@severity_details.user_adjusted`. La puntuación actualizada se establece aproximadamente en el punto medio del rango CVSS v3 de la gravedad objetivo: + +| Target severity | CVSS v3 range | +|---|---| +| None | 0.0 | +| Low | 0.1–3.9 | +| Medium | 4.0–6.9 | +| High | 7.0–8.9 | +| Critical | 9.0–10.0 | + +El vector CVSS original nunca se modifica. No se genera ningún vector sintético para que coincida con la puntuación ajustada. Debido a que una regla solo coincide cuando cambia la gravedad del hallazgo, la puntuación se ajusta solo cuando la gravedad misma cambia; consulte [Evaluation order](#evaluation-order). + +## Auto-closed and passed findings {#auto-closed-and-passed-findings} + +Los modificadores de gravedad no se borran ni se actualizan para los hallazgos que pasan a estar cerrados automáticamente o cuando el resultado de la evaluación es "pass" **pass**. Si la regla que modificó originalmente un hallazgo se edita o elimina posteriormente, esos hallazgos conservan la gravedad que se estableció cuando se cerraron. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[2]: https://app.datadoghq.com/security/configuration/findings-automation?opened-sections=modify_severity \ No newline at end of file diff --git a/hugo/content/es/security/cloud_siem/guide/_index.md b/hugo/content/es/security/cloud_siem/guide/_index.md index ad4b80fb9f4..baa9515c902 100644 --- a/hugo/content/es/security/cloud_siem/guide/_index.md +++ b/hugo/content/es/security/cloud_siem/guide/_index.md @@ -7,13 +7,16 @@ disable_toc: true private: true title: Guías de Cloud SIEM --- - -{{< whatsnext desc="General Guides:" >}} - {{< nextlink href="/getting_started/cloud_siem" >}}Empezando con Cloud SIEM{{< /nextlink >}} - {{< nextlink href="/security/cloud_siem/guide/automate-the-remediation-of-detected-threats" >}}Automatizar la corrección de amenazas detectadas con Cloud SIEM{{< /nextlink >}} - {{< nextlink href="/security/cloud_siem/guide/aws-config-guide-for-cloud-siem" >}}AWS Configuration Guide for Cloud SIEM{{< /nextlink >}} +{{< whatsnext desc="Guías generales:" >}} + {{< nextlink href="/getting_started/cloud_siem" >}}Primeros pasos con Cloud SIEM{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/determine-cloud-siem-product" >}}Determine el producto de Cloud SIEM que utiliza su organización{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/automate-the-remediation-of-detected-threats" >}}Automatice la remediación de amenazas detectadas con Cloud SIEM{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/aws-config-guide-for-cloud-siem" >}}Guía de configuración de AWS para Cloud SIEM{{< /nextlink >}} {{< nextlink href="/security/cloud_siem/guide/google-cloud-config-guide-for-cloud-siem/" >}}Guía de configuración de Google Cloud para Cloud SIEM{{< /nextlink >}} {{< nextlink href="/security/cloud_siem/guide/azure-config-guide-for-cloud-siem/" >}}Guía de configuración de Azure para Cloud SIEM{{< /nextlink >}} - {{< nextlink href="security/cloud_siem/guide/monitor-authentication-logs-for-security-threats" >}}Monitorización de logs de autenticación para las amenazas de seguridad{{< /nextlink >}} - {{< nextlink href="/security/cloud_siem/guide/how-to-setup-security-filters-using-cloud-siem-api" >}}Filtros de seguridad con la API de Cloud SIEM{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/oci-config-guide-for-cloud-siem/" >}}Guía de configuración de OCI para Cloud SIEM{{< /nextlink >}} + {{< nextlink href="security/cloud_siem/guide/monitor-authentication-logs-for-security-threats" >}}Haga un seguimiento de los registros de autenticación en busca de amenazas de Security.{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/customize-which-logs-cloud-siem-analyzes" >}}Personalice qué registros analiza Cloud SIEM{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/ingest-stix-threat-intelligence" >}}Ingiera inteligencia de amenazas STIX{{< /nextlink >}} + {{< nextlink href="/security/cloud_siem/guide/troubleshoot-cribl-stream-cloud-siem" >}}Solucione problemas usando Cribl Stream con Cloud SIEM{{< /nextlink >}} {{< /whatsnext >}} \ No newline at end of file diff --git a/hugo/content/es/security/code_security/dev_tool_int/pull_request_comments/_index.md b/hugo/content/es/security/code_security/dev_tool_int/pull_request_comments/_index.md index bbb21efdd4d..fdb921ab0ba 100644 --- a/hugo/content/es/security/code_security/dev_tool_int/pull_request_comments/_index.md +++ b/hugo/content/es/security/code_security/dev_tool_int/pull_request_comments/_index.md @@ -3,72 +3,82 @@ aliases: - /es/static_analysis/github_pull_requests - /es/code_analysis/github_pull_requests/ - /es/security/code_security/dev_tool_int/github_pull_requests/ -description: Aprende a configurar comentarios de solicitudes de incorporación de cambios - para repositorios explorados por Code Security. -title: Comentarios de solicitudes de incorporación de cambios +description: Aprenda a configurar comentarios de solicitudes de extracción para repositorios + analizados por Code Security. +title: Comentarios de solicitudes de extracción --- +## Descripción general {#overview} +Code Security publica comentarios directamente en las solicitudes de extracción (PR) en su sistema de gestión de código fuente (SCM) cuando se detectan vulnerabilidades en los repositorios habilitados. Esto le ayuda a ver y corregir problemas en contexto antes de fusionar el código. Los comentarios son conscientes de las diferencias, lo que significa que solo marcan problemas nuevos introducidos en las líneas modificadas en la solicitud de extracción. -## Información general -Code Security puede publicar comentarios directamente en las solicitudes de incorporación de cambios de tu sistema de gestión de código (SCM) source (fuente) cuando se detecten vulnerabilidades. Esto te ayuda a ver y solucionar los problemas en contexto antes de fusionar el código. Los comentarios tienen reconocimiento diferente, lo que significa que solo marcan los nuevos problemas introducidos en las líneas modificadas en la solicitud de incorporación de cambios. +Existen dos tipos de comentarios de solicitudes de extracción: +- **Comentario en línea**: Marca un hallazgo individual de Code Security en líneas específicas de código y sugiere una corrección (si está disponible). + + {{< img src="/code_security/github_inline_pr_comment_light.png" alt="Un bot de Datadog ha publicado un comentario en línea en una solicitud de extracción de GitHub marcando una \"Crítica: Vulnerabilidad de código\". El comentario sugiere reemplazar el código os.system(command) con os.system(shlex.quote(command)) para sanitizar la llamada al proceso." style="width:100%;" >}} -Existen dos tipos de comentarios de solicitudes de incorporación de cambios: -- **Comentario en línea**: Marca una conclusión individual de Code Security en líneas específicas de código y sugiere una corrección (si está disponible). + For SAST vulnerabilities and code quality violations that don't have an available suggested fix, the inline comment includes a {{< ui >}}Fix with Cursor{{< /ui >}} link. Click it to open the pull request's branch in Cursor with a tailored remediation prompt for the finding. When a suggested fix is available, the comment shows a committable suggestion instead. To handle the Cursor deep link, install the [Datadog extension for VS Code and Cursor](/ide_plugins/vscode/?tab=cursor). - {{< img src="/code_security/github_inline_pr_comment_light.png" alt="A Datadog bot has posted an inline comment on a GitHub pull request flagging a \"Critical: Code Vulnerability\". Este comentario sugiere sustituir el código os.system(command) con os.system(shlex.quote(command)) para depurar la llamada de proceso." style="width:100%;" >}} -- **Comentario resumido**: Combina todas las conclusiones de Datadog en un único comentario. + {{< img src="code_security/dev_tool_int/pull_request_comments/fix-with-cursor.png" alt="Un comentario en línea de un bot de Datadog en una solicitud de extracción de GitHub que marca una infracción de calidad de código, con un enlace de Fix with Cursor debajo del hallazgo" style="width:100%;" >}} +- **Comentario de resumen**: Combina todos los hallazgos de Datadog en un solo comentario. Este comentario aparece solo si su solicitud de extracción contiene problemas que requieren atención. Después de que se abordan esos hallazgos, el comentario se edita automáticamente para confirmar que su solicitud de extracción ahora está limpia. + + {{< img src="/code_security/github_summary_comment_injections_light.png" alt="Un bot de Datadog ha publicado un comentario de resumen en una solicitud de extracción de GitHub. El comentario tiene una sección de \"Advertencias\" que enumera cuatro vulnerabilidades de código críticas, como inyecciones de SQL y de comandos, con enlaces a los archivos y líneas de código específicos." style="width:100%;" >}} - {{< img src="/code_security/github_summary_comment_injections_light.png" alt="Un bot de Datadog ha publicado un comentario resumido en una solicitud de incorporación de cambios de GitHub. El comentario tiene una sección \"Warnings\" (Advertencias) en la que se enumeran vulnerabilidades críticas de código, como SQL e inserciones de comandos, con vínculos a los archivos y líneas específicas de código." style="width:100%;" >}} +Puede configurar los comentarios de solicitudes de extracción a nivel de organización o de repositorio en [Repository Settings][7], con los siguientes controles: +- Habilitar/deshabilitar comentarios de solicitudes de extracción por tipo de análisis (SAST, SCA estático, Secrets, IaC) +- Establecer umbrales de gravedad para cada tipo de análisis +- Excluir hallazgos de archivos de prueba o dependencias de desarrollo/prueba +- Filtrar hallazgos identificados como falsos positivos por Bits AI -Puedes configurar los comentarios de PR a nivel de la organización o del repositorio en [Configuración del repositorio][7], con los siguientes controles: -- Activación/desactivación de comentarios de PR por tipo de exploración (pruebas de seguridad de aplicaciones estáticas (SAST), SCA estático, secretos, IaC) -- Configuración de umbrales de gravedad para cada tipo de exploración -- Exclusión de los resultados de los archivos test o de las dependencias desarrollo/test +Obtenga más información sobre [los comentarios de PR en Datadog][11]. -**Nota**: Los comentarios de PR no son checks de PR. Para configurar las checks, consulta [Quality Gates][10]. +**Nota**: Los comentarios de PR no son verificaciones de PR. Para configurar las verificaciones, consulte [PR Gates][10]. -## Requisitos previos -- Debes tener activada la integración de código source (fuente) de Datadog para tu proveedor. Los comentarios de PR son compatibles con los repositorios de [GitHub][2], [GitLab][8] y Azure DevOps ([en vista previa][9]). -- Tus repositorios deben tener activados los productos Code Security correspondientes. Para actvar Code Security en la aplicación, ve a la [page (página) de configuración de **Code Security**][4]. +## Requisitos previos {#prerequisites} +- Debe tener habilitada la integración de código fuente de Datadog para su proveedor. Los comentarios de PR son compatibles con los repositorios de [GitHub][2], [GitLab][8] y [Azure DevOps][9]. +- Sus repositorios deben tener habilitado(s) el/los producto(s) de Code Security relevantes. Para habilitar Code Security en la aplicación, navegue a la [{{< ui >}}Code Security{{< /ui >}} página de configuración][4]. -## Configurar comentarios de solicitud de incorporación de cambios -Sigue los pasos que se indican a continuación en función de tu proveedor de gestión de códigos source (fuente). +
+ Los comentarios de PR no son compatibles con las solicitudes de extracción en repositorios públicos, ni en solicitudes de extracción dirigidas a una rama de destino en un repositorio diferente al de la rama fuente (es decir, repositorios bifurcados que intentan fusionarse en el repositorio principal). +
+ +## Configurar los comentarios de las solicitudes de extracción {#set-up-pull-request-comments} +Siga los pasos a continuación según su proveedor de gestión de código fuente. {{< tabs >}} {{% tab "GitHub" %}} -
Si utilizas la exploración alojada en Datadog, activa la alternancia del tipo de exploración que desees (por ejemplo, Análisis estático de código (pruebas de seguridad de aplicaciones estáticas (SAST))) una vez completados los pasos de configuración de GitHub. -Si utilizas Acciones de GitHub para ejecutar tus exploraciones, activa la opción acción en inserción para que aparezcan los comentarios una vez completada la configuración de GitHub.
+
Si utiliza el escaneo alojado en Datadog, habilite el interruptor para el tipo de escaneo deseado (por ejemplo, Static Code Analysis (SAST)) después de completar los pasos de configuración de GitHub. +Si utiliza GitHub Actions para ejecutar sus escaneos, active la acción en push para que los comentarios aparezcan una vez que se complete la configuración de GitHub.
-### Conecta tu(s) cuenta(s) de GitHub a Datadog -Para obtener instrucciones de configuración, lee la documentación de [integración de código source (fuente) de Datadog y GitHub][2]. +### Conecte su(s) cuenta(s) de GitHub a Datadog {#connect-your-github-accounts-to-datadog} +Para obtener instrucciones de configuración, lea la documentación de la [integración de código fuente de GitHub de Datadog][2]. -### Crear o actualizar una aplicación de GitHub -Si ya tienes una aplicación de GitHub conectada a Datadog, actualízala. De lo contrario, crea una nueva aplicación de GitHub. +### Cree o actualice una GitHub App {#create-or-update-a-github-app} +Si ya tiene una GitHub App conectada a Datadog, actualícela. De lo contrario, cree una nueva GitHub App. -
Los permisos que concedas a la aplicación de GitHub determinan qué funciones de integración de GitHub están disponibles para la configuración.
+
Los permisos que otorga a la aplicación de GitHub determinan qué funciones de la integración de GitHub están disponibles para la configuración.
-#### Crear e instalar una aplicación GitHub +#### Cree e instale una GitHub App {#create-and-install-a-github-app} -1. En Datadog, ve a [**Integraciones** > **Aplicaciones GitHub** > **Añadir una nueva aplicación GitHub**][3]. -2. Rellena los datos necesarios, como el nombre de la organización GitHub. -3. En **Seleccionar función**, marca la casilla **Code Security: Comentarios de revisión de solicitudes de extracción**. -4. En **Editar permisos**, comprueba que el permiso **Solicitudes de extracción** está configurado para **Lectura y escritura**. -5. Haz clic en **Create App in GitHub** (Crear aplicación en GitHub). -6. Introduce un nombre para tu aplicación y envíalo. -7. Haz clic en **Install GitHub App** (Instalar aplicación GitHub). -8. Elige en qué repositorios debe instalarse la aplicación y luego haz clic en **Install & Authorize** (Instalar y autorizar). +1. En Datadog, navegue a [{{< ui >}}Integrations{{< /ui >}} > {{< ui >}}GitHub Applications{{< /ui >}} > {{< ui >}}Add New GitHub Application{{< /ui >}}][3]. +2. Complete los detalles requeridos, como el nombre de la organización de GitHub. +3. En {{< ui >}}Select Features{{< /ui >}}, marque la casilla {{< ui >}}Code Security: Pull Request Review Comments{{< /ui >}}. +4. En {{< ui >}}Edit Permissions{{< /ui >}}, verifique que el permiso {{< ui >}}Pull Requests{{< /ui >}} esté configurado en {{< ui >}}Read & Write{{< /ui >}}. +5. Haga clic en {{< ui >}}Create App in GitHub{{< /ui >}}. +6. Ingrese un nombre para su GitHub App y envíelo. +7. Haga clic en {{< ui >}}Install GitHub App{{< /ui >}}. +8. Elija en qué repositorios se debe instalar la GitHub App y luego haga clic en {{< ui >}}Install & Authorize{{< /ui >}}. - {{< img src="ci/static-analysis-install-github-app.png" alt="Pantalla de instalación de la aplicación de GitHub" style="width:50%;" >}} + {{< img src="ci/static-analysis-install-github-app.png" alt="Pantalla de instalación de GitHub App" style="width:50%;" >}} -#### Actualizar una GitHub App existente +#### Actualice una GitHub App existente {#update-an-existing-github-app} -1. En Datadog, ve a [**Integraciones > Aplicaciones GitHub**][5] y busca la aplicación GitHub que quieres utilizar para la seguridad del código. - {{< img src="ci/static-analysis-existing-github-app.png" alt="Ejemplo de comentario de Static Code Analysis en una solicitud de extracción" style="width:90%;" >}} -2. En la pestaña **Características**, observa la sección **Code Security: Comentarios de solicitudes de extracción** para determinar si tu aplicación GitHub necesita permisos adicionales. Si es así, haz clic en **Update permissions in GitHub** (Actualizar permisos en GitHub) para editar la configuración de la aplicación. -3. En **Permisos de repositorio**, configura el acceso a **Solicitudes de extracción** como **Lectura y escritura**. - {{< img src="ci/static-analysis-pr-read-write-permissions.png" alt="Desplegable correspondiente al permiso de lectura y escritura en solicitudes de extracción" style="width:90%;" >}} -4. Bajo el título **Suscribirse a eventos**, marca la casilla **Solicitud de extracción**. - {{< img src="ci/static-analysis-pr-review-comment.png" alt="Casilla correspondiente al permiso para comentarios de revisión en solicitudes de extracción" style="width:90%;" >}} +1. En Datadog, navegue a [{{< ui >}}Integrations{{< /ui >}} > {{< ui >}}GitHub Applications{{< /ui >}}][5] y busque la GitHub App que desea usar para Code Security. + {{< img src="ci/static-analysis-existing-github-app.png" alt="Ejemplo de un comentario de Static Code Analysis en una solicitud de extracción" style="width:90%;" >}} +2. En la pestaña {{< ui >}}Features{{< /ui >}}, consulte la sección {{< ui >}}Code Security: Pull Request Comments{{< /ui >}} para determinar si su GitHub App necesita permisos adicionales. Si es así, haga clic en {{< ui >}}Update permissions in GitHub{{< /ui >}} para editar la configuración de la GitHub App. +3. En {{< ui >}}Repository permissions{{< /ui >}}, establezca el acceso {{< ui >}}Pull Requests{{< /ui >}} en {{< ui >}}Read and write{{< /ui >}}. + {{< img src="ci/static-analysis-pr-read-write-permissions.png" alt="El menú desplegable para el permiso de lectura y escritura de solicitudes de extracción" style="width:90%;" >}} +4. Debajo del encabezado {{< ui >}}Subscribe to events{{< /ui >}}, marque la casilla {{< ui >}}Pull request{{< /ui >}}. + {{< img src="ci/static-analysis-pr-review-comment.png" alt="La casilla de verificación para el permiso de comentarios de revisión de solicitudes de extracción" style="width:90%;" >}} [2]: /es/integrations/github/ @@ -78,55 +88,58 @@ Si ya tienes una aplicación de GitHub conectada a Datadog, actualízala. De lo {{% /tab %}} {{% tab "GitLab" %}} -Consulta las instrucciones de configuración de l[Código source (fuente) de GitLab][8] para conectar GitLab a Datadog. +Consulte las instrucciones de configuración del código fuente de GitLab[8] para conectar los repositorios de GitLab a Datadog. [8]: /es/integrations/gitlab-source-code/ {{% /tab %}} -{{% tab "Azure DevOps" %}} +{{% tab "DevOps" %}} -Azure DevOps para Code Security está en vista previa. [Solicita acceso para unirte a la vista previa][9]. +Consulte las [instrucciones de configuración del código fuente de Azure][9] para conectar los repositorios de Azure DevOps a Datadog. -[9]: https://www.datadoghq.com/product-preview/azure-devops-integration-code-security/ +[9]: /es/integrations/azure-devops-source-code/#source-code-functionality {{% /tab %}} {{< /tabs >}} -## Opciones de configuración - -Antes de activar los comentarios de PR, asegúrate de que **al menos una capacidad de exploración de Code Security esté activada en el repositorio.** Incluso si los comentarios de PR están configurados a nivel de la organización, solo se añaden en repositorios donde está activo un tipo de exploración admitido (por ejemplo, pruebas de seguridad de aplicaciones estáticas (SAST), SCA o IaC). Los repositorios sin ningún tipo de exploración activado no recibirán comentarios de PR. - -Los comentarios de PR pueden configurarse a nivel de la organización o a nivel del repositorio: -- **Nivel de la organización:** La configuración se aplica a todos los repositorios de la organización que tengan activada al menos una capacidad de exploración. -- **Nivel del repositorio:** La configuración sustituye los valores predeterminados de la organización para el repositorio seleccionado. - -Al configurar los comentarios de PR, puedes: -- Activar o desactivar comentarios para tipos específicos de exploración (pruebas de seguridad de aplicaciones estáticas (SAST), SCA, IaC). -- Configura umbrales mínimos de gravedad para controlar cuándo aparecen los comentarios. -- Excluye los comentarios de los resultados en los archivos test o en las dependencias desarrollo/test para evitar el ruido de los problemas de baja prioridad. - -## Configurar los comentarios de PR a nivel de la organización - -1. En Datadog, ve a [**Seguridad** > **Code Security** > **Configuración**][7]. -1. En **Configuración del repositorio**, haz clic en **Global PR Comment Configuration** (Configuración global de comentarios en solicitudes de extracción). -1. Configura los parámetros: - - **Activar comentarios en solicitudes de extracción para todos los tipos y gravedades de análisis**: Habilita esta opción para aplicar comentarios en solicitudes de extracción para todos los tipos y gravedades. - - **Activar para Static Analysis (SAST)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para SAST. Si está activada, especifica un umbral de gravedad mínimo. Además, selecciona **Excluir comentarios en solicitudes de extracción, si se detectan infracciones en archivos de test** para evitar comentarios sobre problemas encontrados en archivos de test. - - **Activar para Software Composition Analysis (SCA)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para SCA. Si está activada, especifica un umbral de gravedad mínimo. Además, selecciona **Excluir comentarios en solicitudes de extracción, si se detectan infracciones en dependencias de test o desarrollo** para evitar comentarios sobre problemas encontrados en dependencias existentes, sólo en entornos de test o desarrollo. - - **Activar para Infrastructure-as-Code (IaC)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para IaC. Si está activada, especifica un umbral de gravedad mínimo. -1. Haz clic en **Save** (Guardar). - -## Configurar comentarios de PR a nivel del repositorio - -1. En Datadog, ve a [**Seguridad** > **Code Security** > **Configuración**][7]. -1. En **Configuración del repositorio**, selecciona un repositorio de la lista. -1. Configura los parámetros: - - **Activar comentarios en solicitudes de extracción para todos los tipos y gravedades de análisis**: Habilita esta opción para aplicar comentarios en solicitudes de extracción para todos los tipos y gravedades. - - **Activar para Static Analysis (SAST)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para SAST. Si está activada, especifica un umbral de gravedad mínimo. Además, selecciona **Excluir comentarios en solicitudes de extracción, si se detectan infracciones en archivos de test** para evitar comentarios sobre problemas encontrados en archivos de test. - - **Activar para Software Composition Analysis (SCA)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para SCA. Si está activada, especifica un umbral de gravedad mínimo. Además, selecciona **Excluir comentarios en solicitudes de extracción, si se detectan infracciones en dependencias de test o desarrollo** para evitar comentarios sobre problemas encontrados en dependencias existentes, sólo en entornos de test o desarrollo. - - **Activar para Infrastructure-as-Code (IaC)**: Activa esta opción para habilitar comentarios en solicitudes de extracción para IaC. Si está activada, especifica un umbral de gravedad mínimo. - - **Bloquear todos los comentarios en este repositorio**: Activa esta opción para desactivar todos los comentarios de este repositorio, anulando la configuración global. -1. Haz clic en **Save configuration** (Guardar configuración). +## Opciones de configuración {#configuration-options} + +Antes de habilitar los comentarios en las PR, asegúrese de que **al menos una capacidad de análisis de Code Security esté habilitada en el repositorio.** Incluso si los comentarios en las PR están configurados a nivel de organización, solo se agregan en los repositorios donde un tipo de análisis compatible (por ejemplo, SAST, SCA o IaC) está activo. Los repositorios sin ningún tipo de análisis habilitado no recibirán comentarios en las PR. + +Los comentarios en las PR se pueden configurar a nivel de organización o a nivel de repositorio: +- **Nivel de organización:** La configuración se aplica a todos los repositorios de la organización que tengan al menos una capacidad de análisis habilitada. +- **Nivel de repositorio:** La configuración anula los valores predeterminados de la organización para el repositorio seleccionado. + +Al configurar los comentarios en las PR, puede: +- Habilitar o deshabilitar comentarios para tipos de análisis específicos (SAST, SCA, IaC). +- Establecer umbrales de gravedad mínima para controlar cuándo aparecen los comentarios. +- Excluir comentarios sobre hallazgos en archivos de prueba o dependencias de desarrollo/prueba para evitar el ruido de problemas de baja prioridad. +- Filtrar los hallazgos identificados como falsos positivos por Bits AI. + +## Configurar los comentarios en las PR a nivel de organización {#configure-pr-comments-at-the-organization-level} + +1. En Datadog, navegue a [{{< ui >}}Security{{< /ui >}} > {{< ui >}}Code Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}}][7]. +1. En {{< ui >}}Repository Settings{{< /ui >}}, haga clic en {{< ui >}}Global PR Comment Configuration{{< /ui >}}. +1. Configure los ajustes: + - {{< ui >}}Enable PR comments for all scan types and severities{{< /ui >}}: Habilite esto para aplicar comentarios de PR en todos los tipos y niveles de gravedad. + - {{< ui >}}Enable for Static Analysis (SAST){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para SAST. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test files{{< /ui >}} para evitar comentarios sobre problemas encontrados en archivos de prueba. Seleccione {{< ui >}}Filter out findings identified as false positives by Bits AI{{< /ui >}} para excluir los hallazgos que Bits AI ha identificado como falsos positivos. Seleccione {{< ui >}}Include public repositories{{< /ui >}} para comentar en repositorios públicos. + - {{< ui >}}Enable for Software Composition Analysis (SCA){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para SCA. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test or dev dependencies{{< /ui >}} para evitar comentarios sobre problemas encontrados en dependencias que solo existen en entornos de desarrollo o prueba. Seleccione {{< ui >}}Include public repositories{{< /ui >}} para comentar en repositorios públicos. + - {{< ui >}}Enable for Secret Scanning (Secrets){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para Secrets. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if secrets are detected in test files{{< /ui >}} para evitar comentarios sobre secretos encontrados en archivos de prueba. Seleccione {{< ui >}}Include public repositories{{< /ui >}} para comentar en repositorios públicos. + - {{< ui >}}Enable for Infrastructure-as-Code (IaC){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para IaC. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test files{{< /ui >}} para evitar comentarios sobre problemas encontrados en archivos de prueba. Seleccione {{< ui >}}Filter out findings identified as false positives by Bits AI{{< /ui >}} para excluir los hallazgos que Bits AI ha identificado como falsos positivos. Seleccione {{< ui >}}Include public repositories{{< /ui >}} para comentar en repositorios públicos. +1. Haga clic en {{< ui >}}Save{{< /ui >}}. + +## Configure los comentarios de PR a nivel de repositorio {#configure-pr-comments-at-the-repository-level} + +1. En Datadog, navegue a [{{< ui >}}Security{{< /ui >}} > {{< ui >}}Code Security{{< /ui >}} > {{< ui >}}Settings{{< /ui >}}][7]. +1. En {{< ui >}}Repository Settings{{< /ui >}}, seleccione un repositorio de la lista. +1. Configure los ajustes: + - {{< ui >}}Enable PR comments for all scan types and severities{{< /ui >}}: Habilite esto para aplicar comentarios de PR en todos los tipos y niveles de gravedad. + - {{< ui >}}Enable for Static Analysis (SAST){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para SAST. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test files{{< /ui >}} para evitar comentarios sobre problemas encontrados en archivos de prueba. Seleccione {{< ui >}}Filter out findings identified as false positives by Bits AI{{< /ui >}} para excluir los hallazgos que Bits AI ha identificado como falsos positivos. + - {{< ui >}}Enable for Software Composition Analysis (SCA){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para SCA. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test or dev dependencies{{< /ui >}} para evitar comentarios sobre problemas encontrados en dependencias que solo existen en entornos de desarrollo o prueba. + - {{< ui >}}Enable for Secret Scanning (Secrets){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para Secrets. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if secrets are detected in test files{{< /ui >}} para evitar comentarios sobre secretos encontrados en archivos de prueba. + - {{< ui >}}Enable for Infrastructure-as-Code (IaC){{< /ui >}}: Active esta opción para habilitar los comentarios de PR para IaC. Si está habilitado, especifique un umbral mínimo de gravedad. Además, seleccione {{< ui >}}Exclude PR comments if violations are detected in test files{{< /ui >}} para evitar comentarios sobre problemas encontrados en archivos de prueba. Seleccione {{< ui >}}Filter out findings identified as false positives by Bits AI{{< /ui >}} para excluir los hallazgos que Bits AI ha identificado como falsos positivos. + - {{< ui >}}Block all comments in this repository{{< /ui >}}: Active esta opción para desactivar todos los comentarios para este repositorio, anulando la configuración global. +1. Haga clic en {{< ui >}}Save Configuration{{< /ui >}}. [1]: /es/security/code_security/ [2]: /es/integrations/github/ @@ -136,5 +149,6 @@ Al configurar los comentarios de PR, puedes: [6]: /es/security/code_security/static_analysis/github_actions/ [7]: https://app.datadoghq.com/security/configuration/code-security/settings [8]: /es/integrations/gitlab-source-code/ -[9]: https://www.datadoghq.com/product-preview/azure-devops-integration-code-security/ -[10]: /es/quality_gates/?tab=staticanalysis#setup \ No newline at end of file +[9]: https://docs.datadoghq.com/es/integrations/azure-devops-source-code/#source-code-functionality +[10]: /es/quality_gates/?tab=staticanalysis#setup +[11]: /es/integrations/guide/source-code-integration/?tab=codesecurity#pr-comments \ No newline at end of file diff --git a/hugo/content/es/security/manual_severity_adjustment.md b/hugo/content/es/security/manual_severity_adjustment.md new file mode 100644 index 00000000000..867b92cc9d0 --- /dev/null +++ b/hugo/content/es/security/manual_severity_adjustment.md @@ -0,0 +1,96 @@ +--- +further_reading: +- link: /security/automation_pipelines/modify_severity/ + tag: Documentación + text: Reglas de modificador de gravedad +products: +- icon: cloud-security-management + name: Cloud Security + url: /security/cloud_security_management/ +- icon: security-code-security + name: Code Security + url: /security/code_security/ +- icon: app-sec + name: App and API Protection + url: /security/application_security/ +- icon: security-workload-security + name: Workload Protection + url: /security/workload_protection/ +title: Ajuste de gravedad +--- +{{< product-availability >}} + +Ajuste manualmente la gravedad de un hallazgo para reflejar el contexto empresarial de su organización, sin crear una [regla de modificador de gravedad][1]. + +## Productos compatibles {#supported-products} + +Puede ajustar manualmente la gravedad de los hallazgos en los siguientes productos: + +- [Cloud Security][2] +- [Code Security][3] +- [App and API Protection][4] +- [Workload Protection][5] + +## Permisos {#permissions} + +Para ajustar la gravedad de los hallazgos, debe tener el permiso `security_monitoring_findings_write` o `appsec_vm_write`. Consulte [Access Control basado en roles][6] para obtener más información sobre los roles predeterminados de Datadog y los permisos de control de acceso basado en roles granulares. + +## Ajustar la gravedad de un hallazgo {#adjust-the-severity-of-a-finding} + +{{< img src="security/manual_severity_adjustment/finding_side_panel_button.png" alt="Panel lateral de un hallazgo con la opción Ajustar gravedad resaltada en el menú de desbordamiento" style="width:100%;" >}} + +1. Abra un hallazgo. +2. Haga clic en {{< ui >}}Adjust Severity{{< /ui >}}. Se abre el cuadro de diálogo **Ajustar gravedad**. +3. Seleccione la nueva gravedad, por ejemplo, **Crítica**. +4. Ingrese una descripción opcional. +5. Haga clic en {{< ui >}}Adjust Severity{{< /ui >}}. + +Para ajustar automáticamente la gravedad de los hallazgos que cumplen con ciertos criterios, consulte [Reglas de modificador de gravedad][1]. + +## Ajuste la gravedad de múltiples hallazgos {#adjust-the-severity-of-multiple-findings} + +Para ajustar la gravedad de múltiples hallazgos a la vez: + +1. En el explorador, seleccione hasta 50 hallazgos. +2. Haga clic en {{< ui >}}Severity{{< /ui >}}. Se abre el cuadro de diálogo **Ajustar gravedad**. +3. Seleccione la nueva gravedad, por ejemplo, **Crítica**. +4. Ingrese una descripción opcional. +5. Haga clic en {{< ui >}}Adjust Severity{{< /ui >}}. + +## Identify modified findings {#identify-modified-findings} + +Los hallazgos con una gravedad ajustada manualmente muestran un indicador visual en las listas del explorador y en el encabezado del panel lateral del hallazgo. Pase el cursor sobre el indicador para ver quién ajustó la gravedad y cualquier descripción que haya ingresado. + +{{< img src="security/manual_severity_adjustment/severity_pill_popover.png" alt="Una píldora de gravedad que muestra un aumento de gravedad, con una ventana emergente que muestra quién ajustó la gravedad y la descripción ingresada" style="width:65%;" >}} + +Para los hallazgos que tienen una puntuación CVSS (vulnerabilidad de imagen de contenedor, vulnerabilidad de servidor, vulnerabilidad de biblioteca y vulnerabilidad de código en tiempo de ejecución), la sección de gravedad del panel lateral también incluye un desglose que muestra: +- El nivel de gravedad original, la puntuación CVSS y el vector CVSS antes del ajuste. +- El nombre del usuario que realizó el ajuste y cualquier descripción ingresada. +- El nivel de gravedad resultante y la puntuación CVSS ajustada. + +{{< img src="security/manual_severity_adjustment/severity_breakdown.png" alt="Un panel lateral de hallazgo que muestra el desglose de gravedad, con la gravedad original, la puntuación CVSS y el vector CVSS; el usuario que realizó el ajuste; y el nivel de gravedad resultante y la puntuación CVSS ajustada." style="width:100%;" >}} + +## Vulnerability findings and CVSS scores {#vulnerability-findings-and-cvss-scores} + +Para los hallazgos de vulnerabilidad que tienen una puntuación CVSS ajustada por Datadog, ajustar manualmente la gravedad también actualiza la puntuación ajustada almacenada en `@severity_details.user_adjusted`. La puntuación actualizada se establece aproximadamente en el punto medio del rango CVSS v3 de la gravedad objetivo: + +| Target severity | CVSS v3 range | +|---|---| +| None | 0.0 | +| Low | 0.1–3.9 | +| Medium | 4.0–6.9 | +| High | 7.0–8.9 | +| Critical | 9.0–10.0 | + +El vector CVSS original nunca se modifica. No se genera ningún vector sintético para que coincida con la puntuación ajustada. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/security/automation_pipelines/modify_severity/ +[2]: https://app.datadoghq.com/security/compliance +[3]: https://app.datadoghq.com/security/code-security +[4]: https://app.datadoghq.com/security/appsec/inventory/finding +[5]: https://app.datadoghq.com/security/workload-protection/findings +[6]: /es/account_management/rbac/permissions/#cloud-security-platform \ No newline at end of file diff --git a/hugo/content/es/security/workload_protection/_index.md b/hugo/content/es/security/workload_protection/_index.md index c3c368b1c6d..6f7b95093a0 100644 --- a/hugo/content/es/security/workload_protection/_index.md +++ b/hugo/content/es/security/workload_protection/_index.md @@ -7,11 +7,9 @@ aliases: - /es/security/threats/security_profiles - /es/security/threats/runtime_anomaly_detection - /es/security/threats/ +- /es/security/threats/agent +- /es/security/workload_protection/agent cascade: -- _target: - path: /security/workload_protection/agent_expressions - aliases: - - /security/threats/agent_expressions - _target: path: /security/workload_protection/backend_linux aliases: @@ -28,71 +26,128 @@ cascade: path: /security/workload_protection/windows_expressions aliases: - /security/threats/windows_expressions +description: Detecte y responda a amenazas en tiempo de ejecución en sus servidores, + contenedores y cargas de trabajo sin servidor con Datadog Workload Protection. +further_reading: +- link: https://www.datadoghq.com/blog/workload-protection-investigation/ + tag: Blog + text: Convierta señales fragmentadas de tiempo de ejecución en historias de ataque + coherentes con Datadog Workload Protection +- link: https://www.datadoghq.com/blog/workload-protection-findings + tag: Blog + text: Identifique y remedie problemas de postura en tiempo de ejecución con los + hallazgos de Workload Protection +- link: https://learn.datadoghq.com/courses/workload-protection-detect-compromises + tag: Centro de aprendizaje + text: Detecte compromisos de servidores y contenedores con Workload Protection +- link: https://learn.datadoghq.com/courses/workload-protection-enable-manage + tag: Centro de aprendizaje + text: Habilite y administre Workload Protection title: Workload Protection --- +Datadog Workload Protection proporciona visibilidad y defensa en tiempo real para su infraestructura mediante el monitoreo continuo de la actividad de archivos, red y procesos en sus entornos. Detecta amenazas a medida que ocurren, generando señales de seguridad y hallazgos. Úselos para identificar, investigar y detener comportamientos maliciosos antes de que afecten sus cargas de trabajo. + +Workload Protection es parte de la plataforma Datadog Security. Las señales se correlacionan con escaneos de configuración incorrecta, evaluaciones de vulnerabilidad y hallazgos de seguridad de código, para que pueda vincular ataques en tiempo de ejecución con debilidades preexistentes. Debido a que se ejecuta en la plataforma Datadog, también se conecta con las métricas, trazas y registros de su infraestructura. Ese contexto le ayuda a comprender el alcance de una amenaza y reconstruir la historia del ataque. + +## Más allá de la detección de amenazas en tiempo de ejecución {#beyond-runtime-threat-detection} + +Workload Protection no se limita a la detección de amenazas en tiempo de ejecución. Muchas organizaciones lo utilizan en una variedad de casos de uso operativos y de seguridad: + +- **Validación de Compliance:** Workload Protection le ayuda a validar el cumplimiento de marcos regulatorios como PCI, FedRAMP y SOC 2 mediante el monitoreo continuo de la actividad en tiempo de ejecución en busca de violaciones de políticas, configuraciones riesgosas y cambios no autorizados. + +- **Postura de seguridad en tiempo de ejecución:** Workload Protection mejora su postura de seguridad al identificar prácticas inseguras en tiempo de ejecución y desviaciones de configuración sensibles, ayudándole a detectar debilidades antes de que puedan ser explotadas. + +- **Infrastructure Monitoring:** Workload Protection rastrea cualquier tipo de comportamiento en tiempo de ejecución, ya sea relacionado con la seguridad o no. Desde la depuración de cargas de trabajo personalizadas hasta el monitoreo de procesos a nivel de sistema y sesiones de usuario remoto, ofrece visibilidad en tiempo real sobre cómo operan sus entornos. + +{{< img src="security/workload_protection/k8s_remote_access.png" alt="Desglose de sesiones de usuario remoto de Kubernetes" width="100%">}} + +## Cómo funciona {#how-it-works} + +Workload Protection evalúa la actividad que recopila en dos lugares: en el Datadog Agent y en Datadog. + +### Ahorro de recursos por diseño {#saving-resources-by-design} + +Las reglas de detección de Workload Protection son complejas y correlacionan varios puntos de datos a través del tiempo y los procesos. Esta complejidad resultaría en demandas considerables de recursos de cómputo en el servidor del Agent si todas las reglas se evaluaran allí. + +Datadog resuelve este problema manteniendo el Agent ligero con reglas eficientes que filtran la actividad no relevante para la seguridad de sus cargas de trabajo y procesando la actividad restante mediante reglas de detección de amenazas y hallazgos en el backend de Datadog. Las reglas del Agent están organizadas en [policies][14], que usted implementa con {{< tooltip glossary="Remote Configuration" case="title" >}} o manualmente. Usted puede administrar reglas y políticas en Datadog, en archivos de configuración del Agent o con el proveedor de Terraform de Datadog. + +{{< img src="security/workload_protection/workload_protection_detection_architecture.png" alt="Descripción general de la arquitectura de Workload Protection" width="100%">}} + +### Recopilación de actividad en tiempo de ejecución {#collecting-runtime-activity} + +El Datadog Agent recopila actividad en tiempo de ejecución de sus cargas de trabajo. El mecanismo de recopilación depende de la plataforma: + +- **Linux**: el Agent de eBPF, que ofrece la mayor compatibilidad de funciones. +- **AWS Fargate**: el rastreador cws-instrumentation. Fargate no proporciona acceso a eBPF, por lo que este Agent utiliza ptrace en su lugar. Cubre las principales funciones de Workload Protection, incluyendo el monitoreo de integridad de archivos y el monitoreo de ejecución de procesos. +- **Windows**: un controlador de Windows. -Workload Protection monitoriza la actividad de archivos, redes y procesos en todo tu entorno para detectar amenazas a tu infraestructura en tiempo real. Como parte de la plataforma de Datadog, puedes combinar la detección de amenazas en tiempo real de Workload Protection con métricas, logs, trazas y otros datos de telemetría para ver el contexto completo de un posible ataque a tus cargas de trabajo. +En Linux y Windows, Workload Protection cubre más de 40 tipos de eventos, que abarcan la actividad de procesos, sistemas de archivos, kernel y red. Para conocer las distribuciones, versiones y entornos de nube que admite cada Agent, consulte [Setup][1]. -## Detectar las amenazas a tus cargas de trabajo de producción en tiempo real +### Evaluación de actividad {#evaluating-activity} -Monitoriza la actividad de archivos y procesos a nivel del kernel para detectar amenazas a tu infraestructura, como instancias de Amazon EC2, contenedores de Docker y clústeres de Kubernetes. Combina Workload Protection con [Network Performance Monitoring][9] y detecta actividad sospechosa a nivel de red antes de que una carga de trabajo se vea comprometida. +Las reglas del Agent realizan un filtrado ligero para que se ejecuten de manera eficiente en cada servidor. Datadog evalúa las correlaciones más complejas a través del tiempo y los procesos: -Workload Protection Threats utiliza el Datadog Agent para monitorizar tu entorno. Si aún no tienes configurado el Datadog Agent, [empieza por configurar el Agent][2] en un [sistema operativo compatible][1]. Hay cuatro tipos de monitorización que el Datadog Agent utiliza para Workload Protection: +1. Las [reglas del Agent][6] evalúan la actividad del sistema en el servidor del Agent. +2. Cuando la actividad coincide con una expresión de regla del Agent, el Agent genera un [agent event][7] y lo envía a Datadog. +3. Datadog evalúa los agent events frente a [detection rules][8] y [finding rules][9]. +4. Si una regla de detección coincide, se genera una señal y se muestra en [Signals][10]. Si un atributo de agent event coincide con un [threat intelligence indicator][13], también se muestra el indicador correspondiente. +5. Si una finding rule coincide, se genera un hallazgo y se muestra en [Findings][11]. +6. Se activan todas las [notification rules][12] que coincidan con la gravedad, el tipo de regla, las etiquetas y los atributos de la señal. -1. **Monitorización de ejecución de procesos** para controlar ejecuciones de proceso en busca de actividad maliciosa en hosts o contenedores en tiempo real. -2. **Monitorización de integración de archivos** para controlar los cambios en archivos y directorios clave en hosts o contenedores en tiempo real. -3. **Monitorización de actividad de DNS** para controlar el tráfico de red en busca de actividad maliciosa en hosts y contenedores en tiempo real. -4. **Monitorización de actividad del kernel** para controlar en tiempo real ataques a la capa del kernel como hijacking de procesos, entrada forzada a contenedores y otros. +Workload Protection se entrega con más de 350 Agent rules y 200 detection rules, que cubren la mayoría de las tácticas y técnicas de MITRE ATT&CK. También puede escribir las suyas propias, incluidas máquinas de estado en el Agent que alertan solo sobre indicadores de compromiso complejos. - +### Responder a amenazas {#responding-to-threats} -## Bloquear de forma proactiva las amenazas con Active Protection +Las acciones de respuesta se ejecutan en el Agent. El Agent puede terminar un proceso o contenedor, o bloquear el tráfico de red mediante un filtro basado en eBPF. Puede activar estas acciones de dos maneras: -Por defecto, todas las reglas de detección de amenazas de minería de criptomonedas predefinidas del Agent están habilitadas y activas para la monitorización contra amenazas. +- **Automated response** adjunta una acción a una Agent rule, de modo que el Agent actúa tan pronto como la regla coincide. +- **Manual response** le permite actuar a partir de una señal después de que se genera. -[Active Protection][10] te permite bloquear y terminar proactivamente las amenazas de minería de criptomonedas identificadas por las reglas de detección de amenazas de Datadog Agent. +Ambas dependen de que la enforcement esté habilitada en el Agent. Consulte [Respond to Threats][4]. -## Gestión de reglas de detección predefinidas y personalizadas +También puede responder desde Datadog en lugar del Agent. Active un [workflow][15] a partir de una señal, o integre señales con sus canalizaciones de respuesta existentes. Consulte [Signal actions][16]. -Workload Protection Threats viene con más de 50 reglas de detección predefinidas que son mantenidas por un equipo de expertos en seguridad. Las reglas identifican los riesgos más importantes para que puedas tomar medidas correctivas de inmediato. Las reglas de expresión del Agent definen las actividades de carga de trabajo que deben recopilarse para el análisis, mientras que las reglas de detección de backend analizan las actividades e identifican técnicas de ataque y otros patrones de comportamiento peligrosos. +## Próximos pasos {#next-steps} -Configura [Cloud Security][1] con {{< tooltip glossary="remote_configuration" case="title" >}} para desplegar automáticamente reglas nuevas y actualizadas en el Agent. [Personaliza las reglas][5] definiendo cómo cada regla monitoriza la actividad de procesos, redes y archivos, [crea reglas personalizadas][6] y [configura notificaciones en tiempo real](#set-up-real-time-notifications) para nuevas señales. +### Configuración {#setup} - +Comience con la guía de [Setup][1]. Cubre los entornos compatibles, cómo implementar el Agent y cómo experimentar con las funciones de Workload Protection utilizando los playground scripts. -## Configuración de notificaciones en tiempo real +### Detectar y hacer un seguimiento {#detect-and-monitor} -[Envía notificaciones en tiempo real][3] cuando se detecte una nueva amenaza en tu entorno, para que tus equipos puedan tomar medidas para mitigar el riesgo. Es posible enviar notificaciones a través de [Slack, correo electrónico, PagerDuty, webhooks y más][4]. +Lea las páginas de [Detect and Monitor][2] para comprender cómo los agent events se traducen en señales y hallazgos de Workload Protection. Estas páginas le ayudan a explorar las detecciones integradas (OOTB) y a crear su propia lógica de detección. -Utiliza variables de plantilla y Markdown para [personalizar los mensajes de notificación][5]. Edita, desactiva y elimina las reglas de notificación existentes, o crea nuevas reglas y define una lógica personalizada para cuando se active una notificación en función de la gravedad y el tipo de regla. +### Investigar y clasificar {#investigate-and-triage} -## Investigar y corregir señales de seguridad +Consulte las páginas de [Investigate and Triage][3] para descubrir los exploradores y las vistas en la aplicación disponibles en Workload Protection. Estas páginas le ayudan a aprovechar al máximo los eventos, señales y hallazgos generados por la plataforma. -Investiga y clasifica las señales de seguridad en el [Signals Explorer][8]. Consulta información detallada sobre los archivos o procesos afectados, logs y señales relacionadas y los pasos para solucionar el problema. +### Responder a amenazas {#respond-to-threats} - +La página [Respond to Threats][4] explica cómo configurar la respuesta automatizada y manual. Cubre los requisitos de Agent enforcement, las acciones de respuesta disponibles y cómo interpretar sus resultados. -{{< callout url="https://docs.google.com/forms/d/e/1FAIpQLSfzQARsTPr3tiJDnS_4bGx7w35LDfAbGUggaUzHYoL0dIUMWQ/viewform" btn_hidden="false" header="Active Protection">}} +### Coverage {#coverage} -Datadog está introduciendo una nueva función llamada Active Protection para hacer frente a las amenazas criptográficas detectadas en tu entorno automáticamente. Active Protection está en Vista previa. Rellena el formulario para solicitar acceso. -{{< /callout >}} +Utilice [Coverage][5] para obtener una vista unificada y en tiempo real de la postura de Workload Protection en servidores, contenedores y cargas de trabajo sin servidor. Identifique problemas de implementación de políticas, activos sin protección y brechas de detección antes de que se conviertan en riesgos explotables. -## Para empezar +### Guides {#guides} -{{< whatsnext >}} - {{< nextlink href="/security/cloud_security_management/setup/">}}Finalizar la configuración{{< /nextlink >}} - {{< nextlink href="/account_management/rbac/permissions/#cloud-security-platform">}}Permisos de roles de Datadog para Workload Protection{{< /nextlink >}} - {{< nextlink href="/security/workload_protection/workload_security_rules">}}Más información sobre reglas de detección de Workload Protection{{< /nextlink >}} - {{< nextlink href="/security/default_rules/#cat-workload-security">}}Empezar a utilizar reglas de detección de Workload Protection predefinidas{{< /nextlink >}} - {{< nextlink href="/getting_started/cloud_security_management">}}Empezando con Cloud Security Management{{< /nextlink >}} +{{< whatsnext desc="Ejemplos basados en casos de uso para ayudarle a descubrir y aprender sobre Workload Protection:" >}} +{{< nextlink href="/security/workload_protection/guide/tuning-rules" >}}Mejores prácticas para ajustar las señales de seguridad de Workload Protection{{< /nextlink >}} {{< /whatsnext >}} -[1]: /es/security/cloud_security_management/setup/ -[2]: /es/agent/ -[3]: /es/security/notifications/ -[4]: /es/security/notifications/#notification-channels -[5]: /es/security/notifications/#detection-rule-notifications -[6]: /es/security/workload_protection/agent_expressions -[8]: /es/security/workload_protection/security_signals -[9]: /es/network_monitoring/performance/ -[10]: /es/security/workload_protection/guide/active-protection \ No newline at end of file +[1]: /es/security/workload_protection/setup +[2]: /es/security/workload_protection/detect_and_monitor +[3]: /es/security/workload_protection/investigate_and_triage +[4]: /es/security/workload_protection/respond_and_report +[5]: /es/security/workload_protection/inventory +[6]: /es/security/workload_protection/detect_and_monitor/agent_rules +[7]: /es/security/workload_protection/investigate_and_triage/agent_events +[8]: /es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules +[9]: /es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules +[10]: /es/security/workload_protection/investigate_and_triage/security_signals +[11]: /es/security/workload_protection/investigate_and_triage/security_findings +[12]: /es/security/notifications/rules +[13]: /es/security/workload_protection/detect_and_monitor/threat_intelligence +[14]: /es/security/workload_protection/detect_and_monitor/agent_rules/policy_management +[15]: /es/actions/workflows/ +[16]: /es/security/workload_protection/investigate_and_triage/security_signals/actions \ No newline at end of file diff --git a/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules.md b/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules.md new file mode 100644 index 00000000000..4d7719f9704 --- /dev/null +++ b/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules.md @@ -0,0 +1,100 @@ +--- +aliases: +- /es/security/workload_protection/detect_and_monitor/detection_rules +- /es/security/workload_protection/setup/ootb_rules +description: Cree y administre las reglas de backend que analizan los eventos del + Agent y generan señales de seguridad de Workload Protection. +disable_toc: false +title: Reglas de detección +--- +Las reglas de detección describen la lógica de backend utilizada para detectar amenazas en su entorno mediante el análisis de [eventos del Agent][1]. Cuando una regla de detección coincide, Workload Protection genera una [señal de seguridad][2] que puede investigar y a la cual puede responder en Datadog. + +Las reglas de detección combinan una o más reglas del Agent (referenciadas con `@agent.rule_id`), aplican métodos de detección como umbrales o anomalías, suprimen el ruido y dirigen las alertas a los equipos correctos. Las reglas del Agent recopilan telemetría de tiempo de ejecución en el servidor; las reglas de detección convierten esa telemetría en detecciones de amenazas priorizadas. + +Esta página explica cómo funcionan las reglas de detección listas para usar (OOTB) y cómo crear reglas de detección personalizadas en Datadog. + +## Reglas de detección OOTB {#ootb-detection-rules} + +Workload Protection incluye **reglas de detección** OOTB mantenidas por Datadog. Combinan la telemetría recopilada a través de las reglas del Agent con expresiones de backend para generar señales de seguridad cuando la actividad parece sospechosa. Explore el catálogo completo en [reglas de detección predeterminadas][3], o revíselas y ajústelas en la lista de [reglas de detección][4] de Workload Protection en Datadog. + +## Crear una regla de detección personalizada {#create-a-custom-detection-rule} + +Para crear una regla de detección personalizada, vaya a la página de [reglas de detección][4] de Workload Protection y haga clic en {{< ui >}}New Rule{{< /ui >}}. También puede usar {{< ui >}}Assisted rule creator{{< /ui >}} para configurar tanto la regla del Agent como la regla de detección en un solo flujo. Consulte [Crear las reglas personalizadas del Agent y de detección juntas](#create-the-custom-agent-and-detection-rules-together). + +El editor de reglas lo guía a través de cinco pasos. + +### Paso 1: Defina su regla en tiempo real {#step-1-define-your-real-time-rule} + +Seleccione el método de detección que desea utilizar: + +- {{< ui >}}Threshold{{< /ui >}}: Defina una ventana de tiempo y la cantidad de eventos coincidentes necesarios para activar una señal. Por ejemplo, active cuando ocurran más de 5 eventos coincidentes en un lapso de 5 minutos. +- {{< ui >}}New value{{< /ui >}}: Active cuando un atributo rastreado aparezca con un valor que no se haya observado anteriormente. +- {{< ui >}}Anomaly{{< /ui >}}: Se activa cuando el volumen o el comportamiento de los eventos se desvía de la línea base esperada. +- {{< ui >}}Content anomaly{{< /ui >}}: Se activa cuando el contenido de los eventos coincidentes es estadísticamente inusual en comparación con los datos históricos. + +### Paso 2: Definir la consulta de búsqueda {#step-2-define-search-query} + +Defina la consulta que selecciona qué [Agent events][1] evalúa la regla. La consulta de búsqueda determina qué eventos se consideran al decidir si se debe emitir una señal. + +Usted puede: + +- Filtre por **campos específicos** en los eventos de Agent para refinar la consulta y hacer que la detección sea más precisa. Por ejemplo, filtre por `@process.executable.path`, `@file.path` o `@agent.rule_id`. Las reglas de detección pueden consultar cualquier campo del esquema de eventos del backend. Consulte la [sintaxis del backend de Linux][13] y la [sintaxis del backend de Windows][14] para ver el conjunto completo de campos disponibles. +- Combine múltiples condiciones para definir el contexto de la regla a un subconjunto de su infraestructura o cargas de trabajo. + +Para las reglas de **umbral**, defina también la **ventana de retrospectiva**: el período durante el cual Datadog cuenta los eventos coincidentes antes de comparar el recuento con las condiciones de su regla. + +Utilice el [Explorador de eventos de Agent][6] para probar su consulta y validar qué eventos coinciden antes de publicar la regla. + +### Paso 3: Definir las condiciones de la regla {#step-3-define-rule-conditions} + +Establezca los límites que determinan cuándo la regla emite una señal. Puede crear **varios casos**, cada uno asociado con un nivel de gravedad diferente. + +Por ejemplo, con una regla de umbral, podría definir: + +- {{< ui >}}Critical{{< /ui >}} cuando ocurren más de 10 eventos coincidentes en un lapso de 5 minutos. +- {{< ui >}}High{{< /ui >}} cuando ocurren más de 5 eventos coincidentes en un lapso de 5 minutos. +- {{< ui >}}Medium{{< /ui >}} cuando ocurren más de 2 eventos coincidentes en un lapso de 5 minutos. + +En la sección {{< ui >}}Add notify{{< /ui >}}, configure opcionalmente quién recibe una notificación cuando se activa la regla. Puede agregar destinatarios individuales o confiar en las [notification rules][7] para administrar las alertas en múltiples reglas de detección. + +### Paso 4: Describa su playbook {#step-4-describe-your-playbook} + +Configure el **título** y la **descripción** de la señal que aparece cuando la abre en el [Explorador de señales][2]. + +1. Ingrese un {{< ui >}}Rule name{{< /ui >}}. El nombre aparece en la lista de reglas de detección y se convierte en el título de la señal de seguridad generada. +2. En la sección {{< ui >}}Rule message{{< /ui >}}, utilice [notification variables][8] y Markdown para describir lo que sucedió y cómo deben actuar los encargados de responder. Las variables de plantilla inyectan contexto dinámico de los eventos de Agent que activan la señal directamente en la señal y sus notificaciones. +3. Utilice el menú desplegable {{< ui >}}Tag resulting signals{{< /ui >}} para agregar etiquetas a las señales generadas. Por ejemplo, `security:attack` o `technique:T1059-command-and-scripting-interpreter`. + +### Paso 5: Crear una supresión {#step-5-create-a-suppression} + +Opcionalmente, agregue una **consulta de supresión** para reducir el ruido excluyendo infraestructura o eventos específicos de esta regla. Las supresiones ayudan a evitar que se generen señales cuando la actividad coincidente es esperada o benigna. + +Por ejemplo, para excluir a un usuario de automatización conocido de una regla, agregue una consulta de supresión como `@usr.name:automation-bot`. + +Este paso también proporciona una **descripción general de la cantidad de eventos coincidentes** en el pasado, para que pueda estimar con qué frecuencia se habría activado la regla antes de guardarla. Utilice esta vista previa para ajustar su consulta, umbrales o supresiones y evitar un volumen excesivo de alertas. + +Para obtener más información sobre las supresiones en las reglas de detección, consulte [Suppressions][9]. + +## Cree las reglas personalizadas de Agent y de detección juntas {#create-the-custom-agent-and-detection-rules-together} + +Para saber cómo se empaquetan las reglas predeterminadas de Agent en las políticas y cómo se implementan, consulte la descripción general de [Agent rules][10] y [Policy management][11]. + +Puede definir una regla de Agent y una regla de detección coincidentes de una de estas maneras: + +- {{< ui >}}Assisted rule creator{{< /ui >}}: En Datadog, inicie una [regla de detección][4] de Workload Protection personalizada y utilice el asistente para configurar tanto la expresión de Agent como la lógica de la regla de detección de backend. +- {{< ui >}}Manual rule creator{{< /ui >}}: Desde [Configuración de Agent][12], abra o cree una política y elija {{< ui >}}Manual rule creator{{< /ui >}} para crear primero la regla de Agent, luego agregue una regla de detección que haga referencia a ella. Para conocer los pasos de la interfaz de usuario y la implementación, consulte [Gestión de políticas][11]. + +[1]: /es/security/workload_protection/investigate_and_triage/agent_events +[2]: /es/security/workload_protection/investigate_and_triage/security_signals +[3]: /es/security/default_rules/#cat-workload-security +[4]: https://app.datadoghq.com/security/configuration/rules?product=cws +[5]: /es/security/workload_protection/respond_and_report/#automated-response +[6]: https://app.datadoghq.com/security/agent-events +[7]: /es/security/notifications/rules/ +[8]: /es/security/notifications/variables/ +[9]: /es/security/suppressions/ +[10]: /es/security/workload_protection/detect_and_monitor/agent_rules +[11]: /es/security/workload_protection/detect_and_monitor/agent_rules/policy_management#create-a-custom-agent-rule +[12]: https://app.datadoghq.com/security/configuration/workload/agent-rules +[13]: /es/security/workload_protection/backend_linux +[14]: /es/security/workload_protection/backend_windows \ No newline at end of file diff --git a/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules.md b/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules.md new file mode 100644 index 00000000000..4b5f2660ec1 --- /dev/null +++ b/hugo/content/es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/finding_rules.md @@ -0,0 +1,82 @@ +--- +aliases: +- /es/security/workload_protection/detect_and_monitor/finding_rules +description: Cree y administre las reglas de backend que evalúan su postura de seguridad + en tiempo de ejecución y generan hallazgos de Workload Protection. +disable_toc: false +further_reading: +- link: /security/workload_protection/investigate_and_triage/security_findings + tag: Documentación + text: Investigue y clasifique los hallazgos +- link: /security/workload_protection/detect_and_monitor/agent_rules/secl_guide + tag: Documentación + text: Guía SECL +- link: /security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules + tag: Documentación + text: Reglas de detección +title: Reglas de hallazgos +--- +Las reglas de hallazgos describen la lógica de backend utilizada para evaluar su postura de seguridad en tiempo de ejecución mediante el análisis de eventos de Agent. Cuando una regla de hallazgo coincide, Workload Protection genera un [finding][2] para el recurso afectado. + +A diferencia de las [detection rules][3], que detectan amenazas de seguridad reales en tiempo de ejecución, las reglas de hallazgos rastrean malas prácticas y configuraciones incorrectas en curso. Un hallazgo representa un recurso (un servidor o contenedor) que está fallando activamente en una política de seguridad, no una sola actividad sospechosa. + +Las reglas de hallazgos utilizan eventos de Agent existentes para mostrar recomendaciones de seguridad prácticas, como el uso del administrador de paquetes en contenedores, patrones de acceso a IMDS o configuraciones de privilegios innecesarias. Esto le ayuda a abordar riesgos del mundo real que no son amenazas directas, pero que representan prácticas riesgosas en entornos de producción. + +## Reglas de hallazgos OOTB {#ootb-finding-rules} + +Workload Protection incluye reglas de hallazgos listas para usar (OOTB) mantenidas por Datadog. Estas reglas muestran continuamente malas prácticas y configuraciones riesgosas en las cargas de trabajo de producción. Datadog desarrolla nuevas reglas predeterminadas de forma continua, y las nuevas reglas se importan automáticamente a su cuenta. Para ver la lista completa, consulte [la lista de reglas OOTB][8]. + +Explore y revise las reglas de hallazgos implementadas en su organización en la lista de [finding rules][6] de Workload Protection en Datadog. Cada regla incluye una descripción del riesgo de seguridad, los tipos de recursos a los que se aplica y una guía de corrección. + +Para reducir el ruido de las configuraciones esperadas, utilice una automatización de hallazgos para silenciar una regla sin deshabilitarla. Consulte [Findings automation][7]. + +## Cree una regla de hallazgo personalizada {#create-a-custom-finding-rule} + +Las reglas de hallazgo personalizadas siguen el mismo proceso de creación que las [reglas de detección][3], con una diferencia clave: se dirigen a un tipo de recurso específico (servidor o contenedor) en lugar de detectar un evento en un momento determinado. + +Para crear una regla de hallazgo personalizada, vaya a la página de [reglas de hallazgo][6] de Workload Protection y haga clic en {{< ui >}}New Rule{{< /ui >}}. + +El editor de reglas lo guía a través de cinco pasos. + +### Paso 1: Seleccione un tipo de recurso y defina la consulta de búsqueda {#step-1-select-a-resource-type-and-define-search-query} + +Seleccione el tipo de recurso que evalúa la regla de hallazgo: + +- {{< ui >}}Host{{< /ui >}}: La regla se aplica a los servidores. Workload Protection antepone automáticamente `-@container.id:*` a su consulta para excluir eventos de contenedor. +- {{< ui >}}Container{{< /ui >}}: La regla se aplica a los contenedores. Workload Protection antepone automáticamente `@container.id:*` a su consulta para incluir solo eventos de contenedor. + +{{< img src="security/workload_protection/detect_and_monitor/finding_rules_editor.png" alt="Editor de reglas de hallazgo que muestra el selector de tipo de recurso Servidor y Contenedor y la vista previa de la consulta de búsqueda" width="100%">}} + +Defina la consulta que selecciona qué [Agent events][1] evalúa la regla. La consulta de búsqueda determina qué eventos se consideran al decidir si un recurso no cumple con la regla. + +Usted puede: + +- Filtre por **campos específicos** en los eventos de Agent para refinar la consulta y hacer que el hallazgo sea más preciso. Por ejemplo, filtre por `@process.executable.path`, `@file.path` o `@agent.rule_id`. Al igual que las [reglas de detección][3], las reglas de hallazgo pueden consultar cualquier campo del esquema de eventos del backend, lo que incluye todos los campos de Agent events además de enriquecimientos adicionales como contexto de infraestructura, ascendencia de procesos e inteligencia de amenazas. Consulte la [sintaxis de backend de Linux][9] y la [sintaxis de backend de Windows][10] para obtener el conjunto completo de campos disponibles. +- Combine múltiples condiciones para definir el contexto de la regla a un subconjunto de su infraestructura o cargas de trabajo. + +Utilice el [Agent Events Explorer][5] para probar su consulta y validar qué eventos coinciden antes de publicar la regla. + +### Paso 2: Defina la gravedad del hallazgo {#step-2-define-finding-severity} + +Defina la gravedad que tiene un hallazgo cuando se activa la regla. + +### Paso 3: Describa el hallazgo {#step-3-describe-the-finding} + +Configure el **nombre**, la **descripción** y la **guía de corrección** que aparecen cuando se genera un hallazgo. + +1. Ingrese un {{< ui >}}Rule name{{< /ui >}}. El nombre aparece en la lista de reglas de hallazgo y se convierte en el título del hallazgo generado. +2. En la sección {{< ui >}}Rule message{{< /ui >}}, use Markdown para describir qué significa el hallazgo y cómo abordarlo. Incluya un encabezado `## Remediation` en el cuerpo del mensaje; Workload Protection utiliza esta sección para mostrar los pasos de corrección directamente en el panel lateral del hallazgo. +3. Use el menú desplegable {{< ui >}}Tag resulting findings{{< /ui >}} para agregar etiquetas a los hallazgos generados. Por ejemplo, `security:posture` o `compliance:pci`. + +**Nota**: El encabezado `## Remediation` es obligatorio para que los pasos de corrección se muestren correctamente en el panel lateral del hallazgo. + +[1]: /es/security/workload_protection/investigate_and_triage/agent_events +[2]: /es/security/workload_protection/investigate_and_triage/security_findings +[3]: /es/security/workload_protection/detect_and_monitor/detection_and_finding_rules/detection_rules +[4]: https://app.datadoghq.com/security/configuration/findings-automation +[5]: https://app.datadoghq.com/security/agent-events +[6]: https://app.datadoghq.com/security/workload-protection/finding-rules +[7]: /es/security/automation_pipelines/mute +[8]: /es/security/default_rules/#workload-activity +[9]: /es/security/workload_protection/backend_linux +[10]: /es/security/workload_protection/backend_windows \ No newline at end of file diff --git a/hugo/content/es/security/workload_protection/setup/linux_ebpf.md b/hugo/content/es/security/workload_protection/setup/linux_ebpf.md new file mode 100644 index 00000000000..5754062d824 --- /dev/null +++ b/hugo/content/es/security/workload_protection/setup/linux_ebpf.md @@ -0,0 +1,97 @@ +--- +aliases: +- /es/security/workload_protection/setup/agent/linux +description: Habilite Workload Protection en hosts Linux con el Datadog Agent basado + en eBPF. +disable_toc: false +title: Configuración de Workload Protection en Linux (con eBPF) +--- +Utilice las siguientes instrucciones para habilitar Workload Protection. + +{{< partial name="security-platform/WP-billing-note.html" >}} + +## Requisitos previos {#prerequisites} + +- Datadog Agent versión `7.46` o superior. + +## Instalación {#installation} + +Para una implementación basada en paquetes, [instale el paquete de Datadog][6] con su administrador de paquetes y, luego, actualice los archivos `datadog.yaml`, `security-agent.yaml` y `system-probe.yaml`. + +{{< code-block lang="bash" filename="/etc/datadog-agent/datadog.yaml" disable_copy="false" collapsible="true" >}} +remote_configuration: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable remote configuration. + enabled: true + +runtime_security_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable Threat Detection + enabled: true + +compliance_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable CIS benchmarks for Misconfigurations. + # + enabled: true + host_benchmarks: + enabled: true + +# Vulnerabilities are evaluated and scanned against your containers and hosts every hour. +sbom: + enabled: true + # Set to true to enable Container Vulnerability Management + container_image: + enabled: true + # Set to true to enable Host Vulnerability Management + host: + enabled: true +{{< /code-block >}} + +{{< code-block lang="bash" filename="/etc/datadog-agent/security-agent.yaml" disable_copy="false" collapsible="true" >}} +runtime_security_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable Threat Detection + enabled: true + +compliance_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable CIS benchmarks for Misconfigurations. + # + enabled: true + host_benchmarks: + enabled: true +{{< /code-block >}} + +{{< code-block lang="bash" filename="/etc/datadog-agent/system-probe.yaml" disable_copy="false" collapsible="true" >}} +runtime_security_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable Threat Detection + enabled: true + + remote_configuration: + ## @param enabled - boolean - optional - default: false + enabled: true +{{< /code-block >}} + +**Notas**: + +- También puede utilizar el siguiente [Agent install script][5] para habilitar automáticamente Misconfigurations and Threat Detection: + + ```shell + DD_COMPLIANCE_CONFIG_ENABLED=true DD_RUNTIME_SECURITY_CONFIG_ENABLED=true DD_API_KEY= DD_SITE="datadoghq.com" bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)" + ``` + +- De forma predeterminada, Runtime Security está deshabilitado. Para habilitarla, es necesario actualizar los archivos `security-agent.yaml` y `system-probe.yaml`. +- Si utiliza el script de instalación del Agent para habilitar Misconfigurations and Threat Detection, debe actualizar manualmente el archivo `datadog.yaml` para habilitar `host_benchmarks` para Misconfigurations, y `sbom` y `container_image` para contenedor Vulnerability Management. + +```shell +sudo cp /etc/datadog-agent/system-probe.yaml.example /etc/datadog-agent/system-probe.yaml +sudo cp /etc/datadog-agent/security-agent.yaml.example /etc/datadog-agent/security-agent.yaml +sudo chmod 640 /etc/datadog-agent/system-probe.yaml /etc/datadog-agent/security-agent.yaml +sudo chgrp dd-agent /etc/datadog-agent/system-probe.yaml /etc/datadog-agent/security-agent.yaml +``` + + +[5]: /es/getting_started/agent/#installation +[6]: /es/agent/?tab=Linux \ No newline at end of file diff --git a/hugo/content/es/serverless/google_cloud_run/containers/_index.md b/hugo/content/es/serverless/google_cloud_run/containers/_index.md index 056d130cc60..c2e66b5d56d 100644 --- a/hugo/content/es/serverless/google_cloud_run/containers/_index.md +++ b/hugo/content/es/serverless/google_cloud_run/containers/_index.md @@ -2,53 +2,79 @@ further_reading: - link: /integrations/google-cloud-run/ tag: Documentación - text: Integración de Google Cloud Run + text: Integración con Google Cloud Run - link: https://www.datadoghq.com/blog/collect-traces-logs-from-cloud-run-with-datadog/ tag: Blog - text: Recopila trazas, registros y métricas personalizadas de los servicios de Cloud + text: Recopile trazas, registros y métricas personalizadas de los servicios de Cloud Run - link: /serverless/google_cloud_run/containers/in_container/ tag: Documentación - text: Instruya su contenedor con el enfoque En-Contenedor + text: Instrumente su contenedor utilizando el enfoque in-container - link: /serverless/google_cloud_run/containers/sidecar/ tag: Documentación - text: Instruya su contenedor con el enfoque sidecar + text: Instrumente su contenedor con el enfoque sidecar - link: https://www.datadoghq.com/blog/instrument-cloud-run-with-datadog-sidecar/ tag: Blog - text: Instruya sus aplicaciones de Google Cloud Run con el nuevo sidecar del Datadog - Agent + text: Instrumente las aplicaciones de Google Cloud Run con el nuevo sidecar del + Datadog Agent - link: /mcp_server/tools/#serverless_onboarding tag: Documentación - text: 'Datadog MCP Server: herramienta de serverless_onboarding' -title: Elegir un método de instrumentación para contenedores + text: 'Datadog MCP Server: herramienta serverless_onboarding' +title: Elección de un método de instrumentación para Containers --- -## Utilice Datadog MCP Server {#use-the-datadog-mcp-server} +## Incorporación mediante agentes {#set-up-with-agentic-onboarding} -Utilice el [Datadog MCP Server][3] para configurar el seguimiento de sus contenedores de Cloud Run con asistencia de inteligencia artificial. Después de conectarte, prueba una instrucción como: +{{< site-region region="gov,gov2" >}} +
Esta función no es compatible con el sitio de Datadog seleccionado ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} + +Utilice la incorporación mediante agentes para configurar el monitoreo de sus contenedores de Cloud Run con asistencia de IA. La incorporación mediante agentes detecta los marcos de trabajo de su proyecto, aplica la configuración necesaria en el lugar y verifica que los datos fluyan. Dos rutas complementarias utilizan la misma cuenta de Datadog: + +- **CLI de configuración de IA**: Una herramienta de terminal independiente. Úsela cuando no desee instalar MCP Server. +- **MCP Server**: Configúrelo desde su IDE a través de un asistente de codificación como Claude Code o Cursor. + +{{< tabs >}} +{{% tab "CLI de configuración de IA" %}} + +Ejecute la CLI en el directorio de su proyecto (requiere Node.js 22+). Vincula su cuenta de Datadog y luego instrumenta su servicio de Cloud Run: ```shell +npx @datadog/ai-setup-cli --product serverless --serverless-compute-type=gcp-cloud-run +``` + +Omita `--product` para ejecutar de forma interactiva, o agregue `--site` para dirigirse a su sitio de Datadog. + +{{% /tab %}} +{{% tab "MCP Server" %}} + +Utilice la herramienta [`serverless_onboarding`](https://docs.datadoghq.com/es/agentic_onboarding/setup/?tab=serverlessmonitoring#mcp-server) del servidor de Datadog MCP para configurar el monitoreo para sus contenedores de Cloud Run con asistencia de IA. Después de conectarse, pruebe con un mensaje como: + +``` Help me monitor my GCP Cloud Run services with Datadog using Terraform. ``` +{{% /tab %}} +{{< /tabs >}} + ## Instrumentación manual {#manual-instrumentation} -Para instrumentar sus contenedores de Google Cloud Run con Datadog, elija una de dos opciones: +Para instrumentar sus contenedores de Google Cloud Run con Datadog, elija una de las dos opciones: {{% gcr-container-options %}} -- [**En-Contenedor**][1]: Envuelva su contenedor de aplicación con el Datadog Agent. Elija esta opción para una configuración más simple, menor sobrecosto y transmisión directa de registros. -- [**Sidecar**][2]: Despliegue el Datadog Agent en un contenedor separado junto a su contenedor de aplicación. Elija esta opción si tiene múltiples contenedores en un solo servicio, si prefiere un aislamiento estricto del Datadog Agent, o si cuenta con cargas de trabajo sensibles al rendimiento. +- [**In-Container**][1]: Envuelve su contenedor de aplicación con el Datadog Agent. Elija esta opción para una configuración más sencilla, menor sobrecarga de costos y envío directo de registros. +- [**Sidecar**][2]: Implementa el Datadog Agent en un contenedor separado junto a su contenedor de aplicación. Elija esta opción si tiene varios contenedores en un solo servicio, si prefiere un aislamiento estricto del Datadog Agent o si tiene cargas de trabajo sensibles al rendimiento. -### Comparación: Instrumentación En-Contenedor versus sidecar {#comparison-in-container-versus-sidecar-instrumentation} +### Comparación: Instrumentación In-Container frente a sidecar {#comparison-in-container-versus-sidecar-instrumentation} -| Aspecto | En-Contenedor | Sidecar | +| Aspecto | In-Container | Sidecar | |-------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Implementación | Un contenedor (su aplicación, envuelta con el Datadog Agent) | Dos contenedores (su aplicación, Datadog Agent) | +| Implementación | Un contenedor (su aplicación, envuelta con el Datadog Agent) | Dos contenedores (su aplicación, Datadog Agent) | | Cambios en la imagen | Aumenta el tamaño de la imagen de la aplicación. | Sin cambios en la imagen de la aplicación. | -| Sobrecosto | Menos que un sidecar (sin contenedor extra). | vCPU/memoria extra. La sobreasignación de recursos al sidecar incrementa los costos; la subasignación conduce a un escalado prematuro. | -| Registro | Acceso directo a stdout/stderr. | Volumen compartido + enrutamiento de la biblioteca de registro a un archivo de registro. Los errores no capturados requieren un manejo adicional, ya que no son gestionados automáticamente por su biblioteca de registro. | -| Aislamiento de fallas | En casos raros, los fallos del Datadog Agent pueden afectar su aplicación. | Los fallos del Datadog Agent están aislados. | +| Sobrecarga de costos | Menor que sidecar (sin contenedor adicional). | vCPU/memoria adicional. La sobreasignación del sidecar desperdicia costos; la subasignación conduce a un escalado prematuro. | +| Registro | Acceso directo a stdout/stderr. | Volumen compartido + enrutamiento de la biblioteca de registro a un archivo de registro. Los errores no detectados requieren un manejo adicional, ya que no son manejados automáticamente por su biblioteca de registro. | +| Aislamiento de fallas | En casos raros, los errores del Datadog Agent pueden afectar su aplicación. | Las fallas del Datadog Agent están aisladas. | -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/synthetics/_index.md b/hugo/content/es/synthetics/_index.md index e6e2c7afc0e..1438e1cb52b 100644 --- a/hugo/content/es/synthetics/_index.md +++ b/hugo/content/es/synthetics/_index.md @@ -7,154 +7,161 @@ aliases: cascade: algolia: rank: 70 -description: Utiliza pruebas automatizadas para garantizar que las partes más críticas - de tus sistemas y aplicaciones estén en funcionamiento desde diversas ubicaciones - en todo el mundo. +description: Utilice pruebas automatizadas para garantizar que las partes más críticas + de sus sistemas y aplicaciones estén en funcionamiento desde varias ubicaciones + alrededor del mundo. further_reading: - link: /synthetics/guide/ tag: Documentación - text: Guías de Monitoreo Sintético + text: Guías de Synthetic Monitoring - link: https://learn.datadoghq.com/courses/getting-started-with-synthetic-browser-testing - tag: Centro de Aprendizaje - text: 'Centro de Aprendizaje de Datadog: Comenzando con pruebas de navegador sintéticas' + tag: Centro de aprendizaje + text: 'Centro de aprendizaje de Datadog: Introducción a Synthetic Browser Testing' - link: https://dtdg.co/fe - tag: Habilitación de Fundación - text: Únete a una sesión interactiva para potenciar tus capacidades de pruebas sintéticas + tag: Foundation Enablement + text: Únase a una sesión interactiva para mejorar sus capacidades de prueba Synthetic +- link: https://www.datadoghq.com/blog/network-test-protocols/ + tag: Blog + text: Pruebe rutas de red con TCP, UDP e ICMP en Datadog - link: https://www.datadoghq.com/blog/http-security-headers-synthetic-tests/ tag: Blog - text: Cómo asegurar los encabezados HTTP con pruebas sintéticas + text: Cómo proteger los encabezados HTTP con pruebas Synthetic - link: https://www.datadoghq.com/blog/synthetic-monitoring-updates/ tag: Blog - text: Obtén información clave sobre las experiencias de tus usuarios de manera más - rápida con Monitoreo Sintético de Datadog + text: Obtenga información clave sobre las experiencias de los usuarios más rápido + con Datadog Synthetic Monitoring. - link: https://www.datadoghq.com/blog/smoke-testing-synthetic-monitoring/ tag: Blog - text: Cómo crear pruebas de humo de UX eficientes con Monitoreo Sintético + text: Cómo crear pruebas de humo de UX eficientes con Synthetic Monitoring - link: https://www.datadoghq.com/blog/slo-synthetic-monitoring/ tag: Blog - text: Mejora la precisión y el rendimiento de los SLO con Monitoreo Sintético de - Datadog + text: Mejore la precisión y el rendimiento de los SLO con Datadog Synthetic Monitoring. - link: https://www.datadoghq.com/blog/mobile-apps-synthetic-tests/ tag: Blog - text: Cómo construir pruebas sintéticas confiables y precisas para tus aplicaciones - móviles + text: Cómo crear pruebas Synthetic confiables y precisas para sus aplicaciones móviles. - link: https://www.datadoghq.com/blog/ambassador-browser-tests/ tag: Blog - text: Cómo ayudé a mi cliente a escalar sus pruebas de navegador con Datadog + text: Cómo ayudé a mi cliente a escalar sus pruebas de navegador con Datadog. - link: https://www.datadoghq.com/blog/datadog-terraform-synthetic-testing/ tag: Blog - text: Automatizando tu infraestructura de pruebas sintéticas con Monitoreo Sintético - de Datadog y Terraform + text: Automatización de su infraestructura de pruebas Synthetic con Datadog Synthetic + Monitoring y Terraform. - link: https://www.datadoghq.com/blog/simplifying-troubleshooting-with-synthetic-monitoring tag: Blog - text: Simplifica la resolución de problemas a lo largo del recorrido del usuario - con Monitoreo Sintético de Datadog + text: Simplificación de la resolución de problemas a lo largo del recorrido del + usuario con Datadog Synthetic Monitoring. - link: https://www.datadoghq.com/blog/rum-product-analytics-bridging-teams tag: Blog - text: 'De rendimiento a impacto: Conectando equipos de frontend a través de un contexto - compartido' + text: 'Del rendimiento al impacto: conectando a los equipos de frontend a través + de un contexto compartido.' - link: https://app.datadoghq.com/release-notes?category=Synthetic%20Monitoring tag: Notas de la versión - text: ¡Consulta los últimos lanzamientos de Monitoreo Sintético de Datadog! (Se - requiere inicio de sesión en la aplicación) -title: Pruebas sintéticas y Monitoreo Sintético + text: ¡Eche un vistazo a las últimas versiones de Datadog Synthetic Monitoring! + (Se requiere inicio de sesión en la aplicación). +title: Synthetic Testing y Monitoring --- -{{< learning-center-callout header="Únete a una sesión de seminario web de habilitación" hide_image="true" btn_title="Regístrate" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} - Explora y regístrate para las sesiones de Habilitación de Fundación. Aprende cómo el Monitoreo Sintético de Datadog es una solución de monitoreo proactiva que te permite crear pruebas de API, navegador y móvil sin código para simular automáticamente flujos de usuario y solicitudes a tus aplicaciones, puntos de conexión clave y capas de red. +{{< learning-center-callout header="Únase a una sesión de seminario web de habilitación" hide_image="true" btn_title="Registrarse" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} + Explore y regístrese en las sesiones de Foundation Enablement. Aprenda cómo Datadog Synthetic Monitoring es una solución de monitoreo proactiva que le permite crear pruebas de API, navegador y móviles sin código para simular automáticamente flujos de usuario y solicitudes a sus aplicaciones, endpoints clave y capas de red. {{< /learning-center-callout >}} -Las pruebas sintéticas te permiten observar cómo están funcionando tus sistemas y aplicaciones utilizando **solicitudes y acciones simuladas de todo el mundo**. Datadog rastrea el rendimiento de tus páginas web y APIs desde el backend hasta el frontend, y en varios niveles de red (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP`, y `gRPC`) de manera controlada y estable, alertándote sobre comportamientos defectuosos como regresiones, características rotas, altos tiempos de respuesta y códigos de estado inesperados. +Las pruebas Synthetic le permiten observar cómo funcionan sus sistemas y aplicaciones mediante **solicitudes y acciones simuladas de todo el mundo**. Datadog rastrea el rendimiento de sus páginas web y API desde el backend hasta el frontend, y en varios niveles de red (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP` y `gRPC`) de una manera controlada y estable, alertándole sobre comportamientos defectuosos como regresiones, funciones rotas, tiempos de respuesta altos y códigos de estado inesperados. -**Calcula SLOs** en tus puntos de conexión clave y recorridos de usuario, lo que facilita alcanzar tus objetivos de rendimiento de la aplicación y, en última instancia, ofrecer una experiencia del cliente consistente. +**Calcular SLOs** en sus endpoints clave y recorridos de usuario facilita el cumplimiento de sus objetivos de rendimiento de aplicaciones y, en última instancia, brindar una experiencia al cliente consistente. -Puedes crear pruebas sintéticas en la [aplicación de Datadog][1], con la [API][2], o con [Terraform][3]. +Puede crear pruebas Synthetic en la [aplicación de Datadog][1], con la [API][2] o con [Terraform][3]. -## Configura pruebas de API y pruebas de API en varios pasos {#set-up-api-tests-and-multistep-api-tests} +## Configurar pruebas de API y pruebas de API de varios pasos {#set-up-api-tests-and-multistep-api-tests} -Las pruebas de API te permiten lanzar [solicitudes individuales][4] o [encadenadas][5] para realizar verificaciones en tus sistemas clave en varios niveles de red: [prueba HTTP][6], [prueba SSL][7], [prueba DNS][8], [prueba WebSocket][9], [prueba TCP][10], [prueba UDP][11], [prueba ICMP][12], y [prueba gRPC][13]. +Las pruebas de API le permiten lanzar solicitudes [únicas][4] o [encadenadas][5] para realizar verificaciones en sus sistemas clave en varios niveles de red: [prueba HTTP][6], [prueba SSL][7], [prueba DNS][8], [prueba WebSocket][9], [prueba TCP][10], [prueba UDP][11], [prueba ICMP][12] y [prueba gRPC][13]. -{{< img src="synthetics/api_test.png" alt="Pruebas de API" style="width:100%;">}} +{{< img src="synthetics/api_tests/api_test_shopist.png" alt="Página de detalles de la prueba de API HTTP que muestra la pestaña Actividad con tiempo de actividad global, una línea de tiempo de alertas y una lista de las últimas ejecuciones de prueba" style="width:100%;">}} -## Graba pruebas de navegador {#record-browser-tests} +## Grabar pruebas de navegador {#record-browser-tests} -Utiliza [pruebas de navegador sintéticas][14] para monitorear cómo tus clientes experimentan tus páginas web de principio a fin desde todo el mundo. +Utilice [Synthetic browser tests][14] para monitorear cómo sus clientes experimentan sus páginas web de principio a fin desde todo el mundo. {{< img src="synthetics/browser_test.mp4" alt="Pruebas de navegador" video=true style="width:100%;">}} -## Graba pruebas de aplicaciones móviles {#record-mobile-application-tests} +## Grabar pruebas de aplicaciones móviles {#record-mobile-application-tests} -Utiliza [pruebas de aplicaciones móviles sintéticas][21] para monitorear cómo tus clientes experimentan tus aplicaciones de iOS y Android de principio a fin desde diferentes tipos de dispositivos. +Utilice [Synthetic mobile application tests][21] para monitorear cómo sus clientes experimentan sus aplicaciones iOS y Android de principio a fin desde diferentes tipos de dispositivos. -{{< img src="synthetics/mobile_app_tests.png" alt="Ejemplos del flujo de trabajo de grabación para una Prueba Móvil Sintética" style="width:100%;">}} +{{< img src="synthetics/mobile_app_tests.png" alt="Ejemplos del flujo de trabajo de grabación para una prueba móvil sintética" style="width:100%;">}} -## Crea pruebas de ruta de red {#create-network-path-tests} +## Crear pruebas de Network Path {#create-network-path-tests} -Crea [pruebas de ruta de red sintéticas][25] desde ubicaciones gestionadas para realizar verificaciones TCP, UDP e ICMP y visualizar rutas de paquetes a través de puntos finales globales. +Cree [Synthetic network path tests][25] desde ubicaciones administradas para realizar verificaciones TCP, UDP e ICMP y visualizar rutas de paquetes a través de endpoints globales. -{{< img src="synthetics/network_tests/syn_network_path.png" alt="Ejemplos de una prueba de red TCP sintética" style="width:100%;">}} +{{< img src="synthetics/network_tests/syn_network_path.png" alt="Ejemplos de Synthetic TCP network test" style="width:100%;">}} ## Conjuntos de pruebas {#test-suites} -Utiliza [conjuntos de pruebas sintéticas][26] para organizar múltiples pruebas en colecciones lógicas agrupadas por recorrido del usuario, entorno, ubicación, servicio o equipo para una gestión y resolución de problemas más eficientes. +Utilice [prueba Synthetic Suites][26] para organizar múltiples pruebas en colecciones lógicas agrupadas por recorrido del usuario, entorno, ubicación, servicio o equipo para una gestión y resolución de problemas optimizadas. + +{{< img src="synthetics/test_suites/test_suite_summary.png" alt="Página de resumen del conjunto de pruebas de Synthetic Monitoring" style="width:100%;">}} + +## Explore Bits Testing y Goal-Based Testing {#explore-bits-testing-and-goal-based-testing} + +Utilice [Bits Testing][27] para explorar su aplicación, asignar recorridos críticos del usuario y generar pruebas Synthetic que los cubran, incluidas las [pruebas basadas en objetivos][28] que verifican que los usuarios puedan alcanzar un objetivo mediante pruebas no deterministas y basadas en agentes. -{{< img src="synthetics/test_suites/test_suite_summary.png" alt="Página de resumen del Conjunto de Pruebas de Monitoreo Sintético" style="width:100%;">}} +{{< img src="synthetics/bits_testing/bits_testing_landing.png" alt="La página de inicio de Bits Testing con un aviso para describir la cobertura de pruebas que desea" style="width:100%;">}} -## Lanza ubicaciones privadas {#launch-private-locations} +## Inicie ubicaciones privadas {#launch-private-locations} -Usa [ubicaciones privadas sintéticas][15] para monitorear APIs y sitios web internos o crear ubicaciones personalizadas en áreas críticas para tu negocio. +Utilice [Synthetic private locations][15] para monitorear API y sitios web internos o crear ubicaciones personalizadas en áreas que son críticas para su negocio. {{< img src="synthetics/private_locations.png" alt="Ubicaciones privadas" style="width:100%;">}} -## Conecta datos y trazas {#connect-data-and-traces} +## Conecte datos y trazas {#connect-data-and-traces} -Usa la [integración entre pruebas sintéticas y trazas APM][16] para identificar la causa raíz de las fallas en solicitudes de frontend, red y backend. +Utilice la [integración entre las pruebas Synthetic y las trazas de APM][16] para encontrar la causa raíz de las fallas en las solicitudes de frontend, red y backend. -{{< img src="synthetics/synthetics_traces.mp4" alt="Monitoreo Sintético" video=true style="width:100%;">}} +{{< img src="synthetics/apm/synthetics_apm_new.mp4" alt="Una prueba de API fallida con el panel lateral abierto en la pestaña traza, que muestra la traza de APM generada por la ejecución de prueba con intervalos codificados por colores en todos los servicios" video=true style="width:100%;">}} -## Accede a tableros listos para usar {#access-out-of-the-box-dashboards} +## Acceda a tableros preconfigurados {#access-out-of-the-box-dashboards} -Analiza la información de rendimiento sobre tus pruebas de API, pruebas de API en varios pasos, pruebas de navegador y ubicaciones privadas, así como eventos de Datadog, con [tableros sintéticos listos para usar][17]. +Analice la información de rendimiento sobre sus pruebas de API, pruebas de API de varios pasos, pruebas de navegador y ubicaciones privadas, así como eventos de Datadog, con [tableros de Synthetic preconfigurados][17]. -{{< img src="synthetics/dashboards/test_dashboard.png" alt="Tablero de resumen de Monitoreo Sintético y Pruebas Continuas" style="width:100%;">}} +{{< img src="synthetics/dashboards/test_dashboard.png" alt="Tablero de resumen de Synthetic Monitoring & Continuous Testing" style="width:100%;">}} -## Usa el Explorador de Resultados de Monitoreo y Pruebas Sintéticas {#use-the-synthetic-monitoring-testing-results-explorer} +## Utilice el explorador de resultados de Synthetic Monitoring & Testing {#use-the-synthetic-monitoring-testing-results-explorer} -Crea [consultas de búsqueda y visualizaciones][20] para tus ejecuciones de pruebas sintéticas o grupos de pruebas que se ejecutan en pipelines de CI/CD. +Cree [consultas de búsqueda y visualizaciones][20] para sus ejecuciones de prueba de Synthetic o lotes de pruebas Synthetic que se ejecutan en canalizaciones de CI/CD. -{{< img src="continuous_testing/explorer_ci_batches_1.png" alt="Explorador de Pruebas Continuas" style="width:100%;">}} +{{< img src="continuous_testing/explorer_ci_batches_1.png" alt="Explorador de Continuous Testing" style="width:100%;">}} -## Rastrea la cobertura de pruebas {#track-testing-coverage} +## Realice un seguimiento de la cobertura de pruebas {#track-testing-coverage} -Optimiza tu conjunto de pruebas [asegurándote de que los flujos de trabajo más críticos de tu aplicación estén siendo probados][22]. +Optimice su conjunto de pruebas [asegurándose de que se estén probando los flujos de trabajo más críticos de su aplicación][22]. -{{< img src="synthetics/test_coverage/test_coverage.png" alt="Explorador de Pruebas Continuas" style="width:100%;">}} +{{< img src="synthetics/test_coverage/test_coverage.png" alt="Explorador de Continuous Testing" style="width:100%;">}} -## Notificaciones de Monitoreo Sintético {#synthetic-monitoring-notifications} +## Notificaciones de Synthetic Monitoring {#synthetic-monitoring-notifications} -Utilice y enriquezca los monitores sintéticos para enviar notificaciones cuando una prueba de Monitoreo Sintético esté fallando. Las siguientes características están disponibles: +Utilice y enriquezca los Synthetic monitors para enviar notificaciones cuando una prueba de Synthetic Monitoring esté fallando. Las siguientes funciones están disponibles: -Mensajes de seguimiento predefinidos -: Los mensajes de seguimiento predefinidos proporcionan un punto de partida estructurado para las alertas de pruebas sintéticas. Cada mensaje incluye un título estandarizado, un resumen y un pie de página que contiene metadatos de prueba, lo que facilita la comprensión de la alerta de un vistazo. +Mensajes de monitor prellenados +: Los mensajes de monitor prellenados proporcionan un punto de partida estructurado para alertas de prueba Synthetic. Cada mensaje incluye un título, un resumen y un pie de página estandarizados que contienen metadatos de la prueba, lo que facilita la comprensión de la alerta de un vistazo. Variables de plantilla -: Las variables de plantilla te permiten inyectar datos específicos de la prueba en las notificaciones de seguimiento de manera dinámica. Estas variables se extraen del objeto `synthetics.attributes`. +: Las variables de plantilla le permiten insertar datos específicos de la prueba en las notificaciones del monitor de forma dinámica. Estas variables se obtienen del objeto `synthetics.attributes`. Uso avanzado -: El uso avanzado incluye técnicas para resaltar información más profunda de las pruebas o estructurar mensajes complejos utilizando plantillas de handlebars. +: El uso avanzado incluye técnicas para obtener información más profunda de las pruebas o estructurar mensajes complejos mediante el uso de plantillas de handlebars. -Alertas condicionales -: Las alertas condicionales te permiten cambiar el contenido de una notificación de seguimiento según resultados específicos de pruebas o condiciones de fallo. +Alerta condicional +: La alerta condicional le permite cambiar el contenido de una notificación de monitor según resultados de prueba o condiciones de falla específicos. -Para más información, consulta [las notificaciones de Monitoreo Sintético][24]. +Para obtener más información, consulte [Notificaciones de Synthetic Monitoring][24]. ## Historial de versiones {#version-history} -Usa [Historial de versiones en Monitoreo Sintético][23] para ejecutar una versión anterior de una prueba, restaurar tu prueba a cualquier versión guardada o clonar una versión para crear una nueva prueba de Monitoreo Sintético. +Utilice [Historial de versiones en Synthetic Monitoring][23] para ejecutar una versión anterior de una prueba, restaurar su prueba a cualquier versión guardada o clonar una versión para crear una nueva prueba de Synthetic Monitoring. ## ¿Listo para comenzar? {#ready-to-start} -Consulta [Introducción a Monitoreo Sintético][18] para obtener instrucciones sobre cómo crear tu primera prueba sintética y monitorear tus aplicaciones web. Luego, explora [Introducción a Ubicaciones Privadas][19] para obtener instrucciones sobre cómo crear tu ubicación privada y ejecutar pruebas sintéticas con tu ubicación privada. +Consulte [Introducción a Synthetic Monitoring][18] para obtener instrucciones sobre cómo crear su primera prueba Synthetic y monitorear sus aplicaciones web. Luego, explore [Introducción a Private Locations][19] para obtener instrucciones sobre cómo crear su ubicación privada y ejecutar pruebas Synthetic con su ubicación privada. -## Lectura adicional {#further-reading} +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -184,4 +191,6 @@ Consulta [Introducción a Monitoreo Sintético][18] para obtener instrucciones s [23]: /es/synthetics/guide/version_history/ [24]: /es/synthetics/notifications/ [25]: /es/synthetics/network_path_tests/ -[26]: /es/synthetics/test_suites/ \ No newline at end of file +[26]: /es/synthetics/test_suites/ +[27]: /es/synthetics/bits_testing/ +[28]: /es/synthetics/goal_based_testing/ \ No newline at end of file diff --git a/hugo/content/es/tracing/guide/ingestion_sampling_use_cases.md b/hugo/content/es/tracing/guide/ingestion_sampling_use_cases.md index 028d38ccf21..2e0fde6690f 100644 --- a/hugo/content/es/tracing/guide/ingestion_sampling_use_cases.md +++ b/hugo/content/es/tracing/guide/ingestion_sampling_use_cases.md @@ -1,155 +1,162 @@ --- -description: Explora diferentes casos de uso y estrategias de muestreo de trazas para - optimizar el volumen de ingesta y mantener al mismo tiempo la capacidad de resolución - de problemas. +description: Explore diferentes casos de uso y estrategias para el muestreo de trazas + que le permitan optimizar el volumen de ingesta y mantener la capacidad de solucionar + problemas. further_reading: - link: /tracing/guide/trace_ingestion_volume_control/ tag: Guía text: Cómo controlar los volúmenes ingeridos -title: Casos de uso del muestreo de trazas +- link: https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/ + tag: Centro de arquitectura + text: 'Dominio del rastreo distribuido: desafíos de volumen de datos y el enfoque + de Datadog para un muestreo eficiente' +- link: https://www.datadoghq.com/architecture/optimizing-distributed-tracing-best-practices-for-remaining-within-budget-and-capturing-critical-traces/ + tag: Centro de arquitectura + text: 'Optimización del rastreo distribuido: mejores prácticas para mantenerse dentro + del presupuesto y capturar trazas críticas' +title: Casos de uso de muestreo de trazas --- +## Descripción general {#overview} -## Información general +Los datos de trazas tienden a ser repetitivos. Un problema en su aplicación rara vez se identifica en una sola traza y ninguna otra. Para servicios de alto rendimiento, particularmente para incidentes que requieren su atención, un problema muestra síntomas repetidamente en múltiples trazas. En consecuencia, generalmente no es necesario que recopile cada traza para un servicio o punto de conexión, ni cada tramo dentro de una traza. Los [mecanismos de Ingestion Control][1] de Datadog APM le ayudan a mantener la visibilidad que necesita para solucionar problemas, mientras reduce el ruido y gestiona los costos. -Los datos de traza (trace) tienden a ser repetitivos. Rara vez se identifica un problema en tu aplicación en una sola traza y en ninguna otra. Para servicios de alto rendimiento, en especial para incidencias que requieren tu atención, un problema muestra indicios repetidamente en múltiples trazas (traces). En consecuencia, no suele ser necesario recopilar todas y cada una de las trazas de un servicio o endpoint, ni todos y cada uno de los tramos (spans) dentro de una traza. Los [mecanismos de control de la ingesta][1] de Datadog APM ayudan a mantener la visibilidad que necesitas para solucionar problemas, al tiempo que reduce el ruido y gestiona los costes. +Los mecanismos de ingesta son configuraciones dentro del Datadog Agent y los SDK de Datadog. Si utiliza SDK de OpenTelemetry para instrumentar sus aplicaciones, lea [Ingestion Sampling with OpenTelemetry][2]. -Los mecanismos de ingesta son configuraciones dentro del Datadog Agent y las bibliotecas de rastreo de Datadog. Si estás utilizando SDKs de OpenTelemetry para instrumentar tus aplicaciones, lee [Muestreo de ingesta con OpenTelemetry][2]. +Esta guía le ayuda a comprender cuándo y cómo utilizar las configuraciones de Ingestion Control según los casos de uso principales que pueda encontrar. Cubre: -Esta guía te ayuda a comprender cuándo y cómo utilizar las configuraciones de control de la ingesta, en función de los principales casos de uso con los que te puedes encontrar. Abarca lo siguiente: +- [Determinar qué mecanismos de ingesta se utilizan](#determining-which-ingestion-mechanisms-are-used) para un servicio determinado +- [Casos de uso que se centran en conservar tipos particulares de trazas](#keeping-certain-types-of-traces) +- [Casos de uso que se centran en reducir las trazas ingeridas](#reducing-ingestion-for-high-volume-services) -- [Determinar qué mecanismos de ingesta se utilizan](#determining-which-ingestion-mechanisms-are-used) para un servicio específico -- [Casos de uso centrados en la conservación de determinados tipos de trazas](#keeping-certain-types-of-traces) -- [Casos de uso centrados en la reducción de la ingesta de trazas](#reducing-ingestion-for-high-volume-services) +## Determinar qué mecanismos de ingesta se utilizan {#determining-which-ingestion-mechanisms-are-used} -## Determinar qué mecanismos de ingesta se utilizan +Para identificar qué mecanismos de ingesta se utilizan actualmente en su entorno de Datadog, navegue a la [página de Ingestion Control][3]. -Para identificar qué mecanismos de ingesta se utilizan actualmente en tu entorno de Datadog, navega hasta la [Página de control de la ingesta][3]. +{{< img src="/tracing/guide/ingestion_sampling_use_cases/ingestion_control_page.png" alt="Página de Ingestion Control" style="width:90%;" >}} -{{< img src="/tracing/guide/ingestion_sampling_use_cases/ingestion_control_page.png" alt="Página de control de la ingesta" style="width:90%;" >}} +La tabla ofrece información sobre los volúmenes ingeridos *por servicio*. La columna Configuration proporciona una primera indicación de la configuración actual. Muestra: +- `AUTOMATIC` si la tasa de muestreo calculada en el Datadog Agent se aplica a las trazas que comienzan desde el servicio. Lea más sobre los detalles de la [lógica de ingesta del Datadog Agent][5]. +- `CONFIGURED` si una tasa de muestreo de trazas personalizada configurada en el SDK se aplica a las trazas que comienzan desde el servicio. -La tabla ofrece información sobre los volúmenes ingeridos *por servicio*. La columna Configuration (Configuración) proporciona una primera indicación de la configuración actual. Muestra lo siguiente: -- `AUTOMATIC` si la frecuencia de muestreo calculada en el Datadog Agent se aplica a las trazas que parten del servicio. Lee más sobre los detalles de [la lógica de ingesta de Datadog Agent][5]. -- `CONFIGURED` si se aplica una frecuencia de muestreo personalizado de trazas configurada en la biblioteca de rastreo a las trazas que parten del servicio. +Haga clic en los servicios para ver detalles sobre qué responsables de la decisión de muestreo (por ejemplo, Agent o SDK, reglas o tasas de muestreo) se utilizan para cada servicio, así como qué [mecanismos de muestreo de ingesta][1] se aprovechan para los servicios de los tramos ingeridos. -Haz clic en los servicios para ver detalles sobre los responsables de la toma de decisiones de muestreo (por ejemplo, Agent o biblioteca de rastreo, reglas o frecuencias de muestreo) que se utilizan para cada servicio, así como los [mecanismos de muestreo de ingesta][1] que se aprovechan para los servicios de tramos ingeridos. +{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary.png" alt="Resumen de ingesta de servicio" style="width:90%;" >}} -{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary.png" alt="Resumen de ingesta del servicio" style="width:90%;" >}} +En el ejemplo de Resumen de ingesta de servicio anterior, la tabla {{< ui >}}Ingestion reasons breakdown{{< /ui >}} muestra que la mayoría de las razones de ingesta para este servicio provienen de `rule` ([regla de muestreo definida por el usuario][6]). -En el ejemplo anterior del resumen de ingesta del servicio, la tabla **Ingestion reasons breakdown** (Desglose de motivos de la ingesta) muestra que la mayoría de los motivos de ingesta de este servicio proceden de `rule` ([regla de muestreo definida por el usuario][6]). +Los principales responsables de la decisión de muestreo para este servicio muestran que el servicio `web-store` obtiene decisiones de muestreo de `web-store`, `shopist-web-ui`, `shipping-worker`, `synthetics-browser` y `product-recommendation`. Estos cinco servicios contribuyen en las decisiones de muestreo generales que afectan a los tramos del servicio `web-store`. Al determinar cómo ajustar la ingesta para web-store, se deben considerar los cinco servicios. -Los principales responsables de la toma de decisiones de muestreo para este servicio muestran que el servicio `web-store` obtiene decisiones de muestreo de `web-store`, `shopist-web-ui`, `shipping-worker`, `synthetics-browser` y `product-recommendation`. Estos cinco servicios contribuyen a las decisiones generales de muestreo que afectan a tramos de servicio de`web-store`. A la hora de determinar cómo ajustar la ingesta para la tienda web, deben tenerse en cuenta los cinco servicios. +## Conservar ciertos tipos de trazas {#keeping-certain-types-of-traces} -## Mantener ciertos tipos de trazas +### Conservar trazas de transacciones completas {#keeping-entire-transaction-traces} -### Mantener las trazas completas de la transacción +Ingestar trazas de transacciones completas garantiza la visibilidad sobre el **flujo de solicitud de servicio de extremo a extremo** para solicitudes individuales específicas. -La ingesta de las trazas completas de transacciones garantiza la visibilidad sobre el **flujo de solicitudes de servicio de extremo a extremo** para solicitudes individuales específicas. +#### Solución: Muestreo basado en el inicio {#solution-head-based-sampling} -#### Solución: muestreo basado en la fase inicial +Se pueden ingestar trazas completas con mecanismos de [muestreo basado en el inicio][4]: la decisión de conservar o descartar la traza se determina a partir del primer tramo de la traza, el *inicio*, cuando se crea la traza. Esta decisión se propaga a través del contexto de la solicitud a los servicios descendentes. -Las trazas completas pueden ser ingeridas con mecanismos de [muestreo basado en la fase inicial][4]: la decisión de mantener o descartar la traza se determina a partir del primer tramo de la traza, la *fase inicial* (head), cuando se crea la traza. Esta decisión se propaga a través del contexto de la solicitud a los siguientes servicios de descarga. +{{< img src="/tracing/guide/ingestion_sampling_use_cases/head-based-sampling.png" alt="Muestreo basado en el inicio" style="width:100%;" >}} -{{< img src="/tracing/guide/ingestion_sampling_use_cases/head-based-sampling.png" alt="Muestro basado en la fase inicial" style="width:100%;" >}} +Para decidir qué trazas conservar y descartar, el Datadog Agent calcula [tasas de muestreo predeterminadas][5] para cada servicio que se aplican en la creación de la traza, según el tráfico de la aplicación: +- Para aplicaciones con poco tráfico, se aplica una tasa de muestreo del 100%. +- Para aplicaciones con mucho tráfico, se aplica una tasa de muestreo más baja con un objetivo de 10 trazas completas por segundo por Agent. -Para decidir qué trazas conservar y cuáles descartar, el Datadog Agent calcula [frecuencias de muestreo predeterminadas][5] para cada servicio para aplicar en la creación de trazas, basándose en el tráfico de la aplicación: -- Para aplicaciones con poco tráfico, se aplica una frecuencia de muestreo del 100%. -- Para aplicaciones con mucho tráfico, se aplica una frecuencia de muestreo más baja con un objetivo de 10 trazas completas por segundo por Agent. +También puede anular la tasa de muestreo predeterminada del Datadog Agent configurando la tasa de muestreo por servicio. Consulte cómo [mantener más trazas para servicios específicos](#keeping-more-traces-for-specific-services-or-resources) para obtener más información. -También puedes anular la frecuencia de muestreo predeterminada del Agent al configurar la frecuencia de muestreo por servicio. Consulta cómo [mantener más trazas para servicios específicos (#keeping-more-traces-for-specific-services-or-resources) para obtener más información. +#### Configuración del muestreo basado en el inicio {#configuring-head-based-sampling} -#### Configuración del muestreo basado en la fase inicial +Las tasas de muestreo predeterminadas se calculan para apuntar a 10 trazas completas por segundo, por Datadog Agent. Este es un número *objetivo* de trazas y es el resultado de promediar las trazas durante un período de tiempo. *No* es un límite estricto, y los picos de tráfico pueden causar que se envíen significativamente más trazas a Datadog durante períodos cortos de tiempo. -Las frecuencias de muestreo predeterminadas se calculan para alcanzar 10 trazas completas por segundo, por Agent. Este es un número *objetivo* de trazas y es el resultado de promediar trazas durante un periodo. *No* es un límite estricto, y los picos de tráfico pueden hacer que se envíe un número significativamente mayor de trazas a Datadog durante breves periodos. +Puede aumentar o disminuir este objetivo configurando el parámetro del Datadog Agent `target_traces_per_second` o la variable de entorno `DD_APM_TARGET_TPS`. Lea más sobre [head-based sampling ingestion mechanisms][5]. -Puedes aumentar o disminuir este objetivo configurando el parámetro del Datadog Agent `max_traces_per_second` o la variable de entorno `DD_APM_MAX_TPS`. Más información sobre [mecanismos de ingesta del muestreo basado en la fase inicial][5]. +**Nota:** Cambiar una configuración del Datadog Agent afecta las tasas de muestreo porcentuales para *todos los servicios* que reportan trazas a este Datadog Agent. -**Nota:** Cambiar una configuración del Agent afecta a los porcentajes de muestreo de *todos los servicios* que informan trazas a este Datadog Agent. +Para la mayoría de los escenarios, esta configuración a nivel de Datadog Agent se mantiene dentro de la cuota asignada, proporciona suficiente visibilidad sobre el rendimiento de su aplicación y le ayuda a tomar decisiones adecuadas para su negocio. -Para la mayoría de los casos, esta configuración a nivel de Agent se mantiene dentro de la cuota asignada, proporciona suficiente visibilidad del rendimiento de tu aplicación y te ayuda a tomar las decisiones adecuadas para tu negocio. +### Mantener más trazas para servicios o recursos específicos {#keeping-more-traces-for-specific-services-or-resources} -### Mantener más trazas para servicios o recursos específicos +Si algunos servicios y solicitudes son críticos para su negocio, desea tener una mayor visibilidad sobre ellos. Es posible que desee enviar todas las trazas relacionadas a Datadog para que pueda examinar cualquiera de las transacciones individuales. -Si algunos servicios o solicitudes son críticos para tu negocio, querrás tener una mayor visibilidad de ellos. Es posible que desees enviar todas las trazas relacionadas a Datadog para analizar cualquiera de las transacciones individuales. +#### Solución: Reglas de muestreo {#solution-sampling-rules} -#### Solución: reglas de muestreo +De forma predeterminada, las tasas de muestreo se calculan para apuntar a 10 trazas por segundo por Datadog Agent. Puede anular la tasa de muestreo calculada predeterminada configurando [sampling rules][6] en el SDK. -Por defecto, la frecuencia de muestreo se calcula para 10 trazas por segundo por Datadog Agent. Puedes anular la frecuencia de muestreo calculada por defecto al configurar [reglas de muestreo][6] en la biblioteca de rastreo. +Puede configurar reglas de muestreo por servicio. Para las trazas que comienzan desde el servicio especificado en la regla, se aplica la tasa de muestreo porcentual definida en lugar de la tasa de muestreo predeterminada del Agent. -Puedes configurar reglas de muestreo por servicio. Para trazas que comienzan a partir del servicio especificado en la regla, se aplica la frecuencia de muestreo porcentual definida en lugar de la frecuencia de muestreo predeterminada del Agent. +#### Configuración de una regla de muestreo {#configuring-a-sampling-rule} -#### Configuración de una regla de muestreo +Puede configurar reglas de muestreo estableciendo la variable de entorno `DD_TRACE_SAMPLING_RULES`. -Puedes configurar reglas de muestreo estableciendo la variable de entorno `DD_TRACE_SAMPLING_RULES` . - -Por ejemplo, para enviar el 20% de las trazas para el servicio denominado `my-service`: +Por ejemplo, para enviar el 20 por ciento de las trazas para el servicio llamado `my-service`: ``` DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.2}]' ``` -Más información sobre [mecanismos de ingesta de reglas de muestreo][6]. +Lea más sobre los [mecanismos de ingestión de reglas de muestreo][6]. -### Mantener más trazas relacionadas con errores +### Conservar más trazas relacionadas con errores {#keeping-more-error-related-traces} -Las trazas con tramos de error suelen ser síntomas de fallos del sistema. Mantener una mayor proporción de transacciones con errores garantiza que siempre se tenga acceso a algunas solicitudes individuales relevantes. +Las trazas con tramos de error suelen ser síntomas de fallas del sistema. Conservar una mayor proporción de transacciones con errores garantiza que siempre tenga acceso a algunas solicitudes individuales relevantes. -#### Solución: frecuencia de muestreo de errores +#### Solución: Tasa de muestreo de errores {#solution-error-sampling-rate} -Además de las trazas de muestreo basado en la fase inicial, puedes aumentar la tasa de muestreo de errores para que cada Agent conserve tramos de errores adicionales, aunque las trazas relacionadas no se conserven mediante el muestreo basado en la fase inicial. +Además de las trazas muestreadas basadas en el inicio, puede aumentar la tasa de muestreo de errores para que cada Datadog Agent conserve tramos de error adicionales, incluso si las trazas relacionadas no se conservan mediante el muestreo basado en el inicio. {{< img src="/tracing/guide/ingestion_sampling_use_cases/error-spans-sampling.png" alt="Muestreo de errores" style="width:100%;" >}} **Notas:** -- Es posible que los fragmentos distribuidos de las partes de trazas no se ingieran, ya que el muestreo se realiza localmente a nivel del Datadog Agent. -- A partir del **Datadog Agent 6/7.41.0 y versiones posteriores**, `DD_APM_FEATURES=error_rare_sample_tracer_drop` puede configurarse para incluir tramos descartados mediante reglas de biblioteca de rastreo o `manual.drop`. Encontrarás más detalles en la sección [Trazas de errores del documento Mecanismos de ingesta][9]. +- Es posible que los fragmentos distribuidos de las trazas no se ingieran, ya que el muestreo ocurre localmente a nivel del Datadog Agent. +- A partir de **Datadog Agent 6/7.41.0 y versiones superiores**, `DD_APM_FEATURES=error_rare_sample_tracer_drop` se puede configurar para incluir tramos descartados por reglas de SDK o `manual.drop`. Puede encontrar más detalles en la [sección de trazos de error del documento de Mecanismos de ingestión][9]. -#### Configuración del muestreo de errores +#### Configuración del muestreo de errores {#configuring-error-sampling} -Puedes configurar el número a capturar de partes de error por segundo, por Agent, configurando la variable de entorno `DD_APM_ERROR_TPS` . El valor por defecto es `10` errores por segundo. Para ingerir **todos los errores**, ajústalo a un valor alto arbitrario. Para desactivar el muestreo de errores, establece `DD_APM_ERROR_TPS` en `0`. +Puede configurar la cantidad de fragmentos de error por segundo por Datadog Agent que se capturarán configurando la variable de entorno `DD_APM_ERROR_TPS`. El valor predeterminado es `10` errores por segundo. Para ingerir **todos los errores**, establézcalo en un valor arbitrariamente alto. Para deshabilitar el muestreo de errores, establezca `DD_APM_ERROR_TPS` en `0`. -## Reducción de la ingesta para servicios de gran volumen +## Reducción de la ingestión para servicios de alto volumen {#reducing-ingestion-for-high-volume-services} -### Reducción del volumen desde base de datos o servicios en caché +### Reducción del volumen de servicios de base de datos o caché {#reducing-volume-from-database-or-cache-services} -Las llamadas a la base de datos rastreadas pueden representar una gran cantidad de datos ingeridos, mientras que las métricas de rendimiento de la aplicación (como recuento de errores, recuento de los resultados de la solicitud y latencia) son suficientes para monitorizar el estado de la base de datos. +Las llamadas a bases de datos rastreadas pueden representar una gran cantidad de datos ingeridos, mientras que las métricas de rendimiento de la aplicación (como los conteos de errores, los conteos de aciertos de solicitudes y la latencia) son suficientes para hacer un seguimiento del estado de la base de datos. -#### Solución: reglas de muestreo para trazas con llamadas a bases de datos +#### Solución: Reglas de muestreo para trazos con llamadas a bases de datos {#solution-sampling-rules-for-traces-with-database-calls} -Para reducir el volumen de tramo creado por el rastreo de llamadas a la base de datos, configura el muestreo en la fase inicial (head) de la traza. +Para reducir el volumen de tramos creado al rastrear llamadas a bases de datos, configure el muestreo al inicio de la traza. -Los servicios de base de datos rara vez inician una traza. Normalmente, los tramos de base de datos del cliente son secundarios de un tramo de servicio backend instrumentado. +Los servicios de base de datos rara vez inician una traza. Por lo general, los tramos de base de datos del cliente son hijos de un tramo de servicio de backend instrumentado. -Para saber **qué servicios inician trazas de base de datos**, utiliza el gráfico de lista principal `Top Sampling Decision Makers` del [Resumen de la ingesta del servicio][7] en la página de control de la ingesta. Configurar el muestreo basado en la fase inicial para estos servicios reduce el volumen de los tramos de base de datos ingeridos, a la vez que se asegura que no se ingieran ninguna traza incompleta. Las trazas distribuidas se conservan o se descartan por completo. +Para saber **qué servicios inician trazas de base de datos**, utilice el gráfico de lista principal `Top Sampling Decision Makers` en la página de control de ingesta [Resumen de Ingesta de Servicios][7]. Configurar el muestreo basado en el inicio para estos servicios específicos reduce el volumen de tramos de base de datos ingeridos, al tiempo que garantiza que no se ingieran trazas incompletas. Las trazas distribuidas se conservan o se descartan por completo. -{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary-database.png" alt="Responsables de la toma de decisiones de muestreo" style="width:90%;" >}} +{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary-database.png" alt="Principales responsables de la toma de decisiones de muestreo" style="width:90%;" >}} -Por ejemplo, para las llamadas a la base de datos rastreadas de `web-store-mongo`, las trazas se originan en servicios `web-store` y `shipping-worker` el 99% de las veces. En consecuencia, para reducir el volumen para `web-store-mongo`, configura el muestreo para los servicios `web-store` y `shipping-worker`. +Por ejemplo, para las llamadas a bases de datos trazadas de `web-store-mongo`, las trazas se originan en los servicios `web-store` y `shipping-worker` el 99% de las veces. Como resultado, para reducir el volumen de `web-store-mongo`, configure el muestreo para los servicios `web-store` y `shipping-worker`. -#### Configuración del muestreo para eliminar tramos de la base de datos +#### Configure el muestreo para descartar tramos de base de datos {#configure-sampling-to-drop-database-spans} -Consulta la sección [Configuración de la regla de muestreo](#configuring-a-sampling-rule) para obtener más información sobre la sintaxis de las reglas de muestreo. +Consulte la [sección de configuración de reglas de muestreo](#configuring-a-sampling-rule) para obtener más información sobre la sintaxis de las reglas de muestreo. -El servicio backend `web-store` está llamando a una base de datos Mongo múltiples veces por traza, y está creando mucho volumen de tramos no deseado: +El servicio de backend `web-store` está llamando a una base de datos Mongo varias veces por traza, y está creando una gran cantidad de volumen de tramos no deseados: -- Configura una **regla de muestreo de traza** para el servicio backend `web-store`, que garantiza que se conserve el 10% de la totalidad de trazas, incluidos tramos de Mongo. +- Configure una **regla de muestreo de traza** para el servicio de backend `web-store`, asegurando que se conserve el 10 por ciento de las trazas completas, incluidos los tramos de Mongo. ``` DD_TRACE_SAMPLING_RULES='[{"service": "web-store", "sample_rate": 0.1}]' ``` -- Opcionalmente, si deseas conservar todos los tramos `web-store`, configura una **regla de muestreo de tramo único** para conservar el 100 por ciento de los tramos para el servicio backend `web-store`. Este muestreo no ingiere ningún tramo de llamada a la base de datos fuera del 10 por ciento identificado anteriormente. +- Opcionalmente, si desea conservar todos los tramos `web-store`, configure una **regla de muestreo de un solo tramo** para conservar el 100 por ciento de los tramos para el servicio de backend `web-store`. Este muestreo no ingiere ningún tramo de llamada a base de datos fuera del 10 por ciento identificado anteriormente. ``` DD_SPAN_SAMPLING_RULES='[{"service": "web-store", "sample_rate": 1}]' ``` - **Nota**: Configurar una regla de muestreo de tramo único es especialmente útil si estás utilizando [métricas basadas en tramos][8], que se derivan de tramos ingeridos. + **Nota**: Configurar una regla de muestreo de un solo tramo es especialmente útil si está utilizando [métricas basadas en tramos][8], las cuales se derivan de los tramos ingeridos. {{< img src="/tracing/guide/ingestion_sampling_use_cases/single-span-sampling3.png" alt="Muestreo de tramos de base de datos" style="width:100%;" >}} -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/es/tracing/recommendations/_index.md b/hugo/content/es/tracing/recommendations/_index.md index 30f848c2e26..02836cd1db1 100644 --- a/hugo/content/es/tracing/recommendations/_index.md +++ b/hugo/content/es/tracing/recommendations/_index.md @@ -1,93 +1,154 @@ --- algolia: tags: - - recomendaciones de apm - - recomendación de apm - - recomendación de rum - - recomendaciones de rum + - apm recommendations + - apm recommendation - application performance monitoring - - recomendaciones de rendimiento - - recomendaciones de fiabilidad - - rastreo -description: Aprende a optimizar el rendimiento y la fiabilidad de tu aplicación con - las Recomendaciones de APM. + - performance recommendations + - reliability recommendations + - tracing +description: Aprenda a optimizar el rendimiento y la confiabilidad de su aplicación + con las recomendaciones de APM. further_reading: - link: /tracing/ tag: Documentación - text: Más información sobre Application Performance Monitoring (APM) + text: Obtenga información sobre Application Performance Monitoring (APM) - link: /tracing/guide/apm_dashboard/ tag: Documentación - text: Guía del dashboard de APM + text: Guía del Dashboard de APM - link: /cloud_cost_management/recommendations/ tag: Documentación - text: Recomendaciones de costes en la nube + text: Recomendaciones de Cloud Cost - link: /database_monitoring/recommendations/ tag: Documentación text: Recomendaciones de DBM - link: https://www.datadoghq.com/blog/proactive-app-recommendations/ tag: Blog - text: Mejora el rendimiento y la fiabilidad con Proactive App Recommendations + text: Mejore el rendimiento y la confiabilidad con las recomendaciones proactivas + de aplicaciones +- link: https://www.datadoghq.com/blog/apm-recommendations + tag: Blog + text: Mejore el rendimiento y la confiabilidad con las recomendaciones de APM multifiltersearch: data: - - category: Rendimiento + - category: Performance recommendation_description: Una aplicación de backend llama a la misma base de - datos de forma secuencial en lugar de realizar consultas por lotes. + datos de forma secuencial en lugar de procesar las consultas por lotes. recommendation_prerequisite: APM - recommendation_type: Consultas N+1 a la base de datos - scope: Servicios de backend - - category: Rendimiento - recommendation_description: Una aplicación de backend llama a la misma API de - forma secuencial en lugar de realizar consultas por lotes. + recommendation_type: N+1 Queries on Database + scope: Backend services + - category: Performance + recommendation_description: Una aplicación de backend realiza múltiples llamadas + a la misma API descendente de forma secuencial en lugar de ejecutarlas en paralelo, + lo que aumenta innecesariamente la latencia de las solicitudes y ralentiza el + rendimiento general del servicio. recommendation_prerequisite: APM - recommendation_type: Llamadas secuenciales a la API - scope: Servicios de backend - - category: Rendimiento - recommendation_description: Una aplicación de backend reintenta llamadas defectuosas - a una API sin backoff. + recommendation_type: Repeated Sequential API calls + scope: Backend services + - category: Performance + recommendation_description: Una aplicación de backend emite un número excesivo + de intentos de reintento al llamar a una API descendente, lo que prolonga la + duración de la solicitud y arriesga fallas en cascada bajo presión. recommendation_prerequisite: APM - recommendation_type: Reintentos agresivos - scope: Servicios de backend - - category: Rendimiento + recommendation_type: Persistent Retries + scope: Backend services + - category: Performance recommendation_description: El plan de ejecución de la consulta realiza escaneos - secuenciales costosos. Cuando se detecta, Datadog recomienda utilizar un índice - para agilizar la consulta. + secuenciales costosos. Cuando se detecta, Datadog recomienda usar un índice + para acelerar la consulta. + recommendation_prerequisite: APM + DBM + recommendation_type: Missing index + scope: Databases + - category: Performance + recommendation_description: Un servicio está realizando consultas de solo lectura + a una instancia de base de datos principal cuando hay réplicas disponibles. + Dirigir estas consultas a las réplicas puede reducir la carga principal y mejorar + el rendimiento. recommendation_prerequisite: APM + DBM - recommendation_type: Sin índice - scope: Bases de datos - - category: Experiencia del usuario - recommendation_description: Se detectan acciones comunes de rage o death en los - elementos de una página, las cuales indican que la interfaz de usuario es engañosa - o que hay elementos rotos. - recommendation_prerequisite: RUM - recommendation_type: Acción de frustración del usuario - scope: Aplicaciones de navegador - - category: Experiencia del usuario - recommendation_description: Recursos grandes de JS que causan retrasos en el renderizado - de la página inical señalando una interfaz de usuario engañosa o elementos rotos. - recommendation_prerequisite: RUM - recommendation_type: Tamaño de paquete no optimizado - scope: Aplicaciones de navegador y vistas web en aplicaciones móviles - - category: Tasa de error - recommendation_description: Una aplicación de backend comenzó a generar un nuevo - Error de firma. - recommendation_prerequisite: Error Tracking - recommendation_type: Nuevo problema - scope: Servicios de backend - - category: Rendimiento - recommendation_description: Una aplicación de backend está lanzando un elevado - número de excepciones como flujo de control + recommendation_type: Unbalanced Read Load + scope: Databases + - category: Reliability + recommendation_description: Una aplicación de backend activa intentos de reintento + rápidos sin un retroceso adecuado, manteniendo una alta presión sobre las dependencias + con problemas y arriesgando interrupciones prolongadas al evitar la recuperación + del sistema durante fallas transitorias. + recommendation_prerequisite: APM + recommendation_type: Aggressive Retries + scope: Backend services + - category: Reliability + recommendation_description: Una aplicación de backend está generando una gran + cantidad de excepciones como flujo de control, lo que añade una sobrecarga de + CPU y memoria. recommendation_prerequisite: APM + Continuous Profiler - recommendation_type: Alto volumen de excepciones lanzadas - scope: Servicios de backend + recommendation_type: High Exception Volumes + scope: Backend services + - category: Reliability + recommendation_description: Una aplicación de backend agota el tiempo de espera + mientras llama a una dependencia descendente porque la dependencia responde + demasiado lentamente, lo que provoca fallas en las solicitudes que afectan a + los usuarios finales y aumenta el riesgo de fallas en cascada ascendentes. + recommendation_prerequisite: APM + RUM + recommendation_type: Dependency Timeouts + scope: Backend services + - category: Performance + recommendation_description: Un servicio realiza un trabajo costoso y repetido + en la ruta de solicitud que podría servirse desde una caché de corta duración, + lo que reduce la latencia de cola y la carga descendente. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Missing Cache + scope: Backend services + - category: Performance + recommendation_description: Un servicio presenta una latencia de cola extrema + impulsada por tramos descendentes lentos en la ruta crítica, a menudo debido + a una latencia de dependencia ilimitada o llamadas secuenciales que podrían + ejecutarse simultáneamente. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Tail Latency + scope: Backend services + - category: Performance + recommendation_description: Un servicio dedica una parte importante del tiempo + de solicitud a tareas de serialización o parseo vinculadas a la CPU, lo que + añade latencia y sobrecarga de CPU evitables. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Excessive Serialization + scope: Backend services + - category: Performance + recommendation_description: Un servicio acepta parámetros de solicitud sin límites + de tamaño o rango, lo que permite que las entradas de gran tamaño generen un + trabajo descendente costoso, latencia de cola y tiempos de espera. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Unbounded Payload + scope: Backend services + - category: Performance + recommendation_description: El manejo de solicitudes se serializa detrás de una + primitiva de sincronización o una sección crítica de larga duración, lo que + provoca latencia de cola bajo concurrencia. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Resource Contention + scope: Backend services + - category: Reliability + recommendation_description: Un servicio agota repetidamente su grupo de conexiones + a una dependencia descendente, lo que pone en cola las solicitudes y provoca + picos de latencia o fallas bajo carga. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Connection Pool Exhaustion + scope: Backend services + - category: Reliability + recommendation_description: Un servicio muestra resultados esperados como errores + en APM, lo que infla las tasas de error de los puntos de conexión y oculta regresiones + de confiabilidad reales. + recommendation_prerequisite: APM + AI Recs (Preview) + recommendation_type: Error Misclassification + scope: Backend services headers: - filter_by: true - id: categoría + id: category name: Categoría de recomendación - filter_by: true id: recommendation_type name: Tipo de recomendación - filter_by: true - id: contexto + id: scope name: Alcance de la recomendación - id: recommendation_description name: Descripción de la recomendación @@ -97,53 +158,75 @@ multifiltersearch: site_support_id: apm_recommendations title: Recomendaciones de APM --- +Las recomendaciones de APM le ayudan a mejorar el rendimiento y la confiabilidad de sus aplicaciones al mostrar oportunidades de optimización a partir de la telemetría recopilada. Estas recomendaciones están diseñadas para: + +- Identificar y resolver cuellos de botella en el rendimiento +- Mejorar la confiabilidad y el tiempo de actividad del servicio +- Mejorar la experiencia del usuario final + +{{< img src="/tracing/recommendations/apm_recommendations-3.png" alt="Página de recomendaciones de APM con tarjetas de resumen para problemas de confiabilidad y rendimiento y una lista de recomendaciones para revisar" style="width:100%;" >}} -{{< callout url="https://www.datadoghq.com/product-preview/apm-proactive-recommendations/" >}} -Las Recomendaciones de APM están en vista previa. Las funciones y recomendaciones pueden cambiar antes de la disponibilidad general. Para solicitar acceso, rellena este formulario. +{{< callout url="https://www.datadoghq.com/product-preview/apm-ai-recommendations/" header="¡Únase a la vista previa de recomendaciones de IA!" >}} +Ya están disponibles los tipos de recomendaciones impulsadas por IA, lo que amplía el conjunto de [oportunidades de optimización](?recommendation_prerequisite=APM+%2B+AI+Recs+%28Preview%29#supported-recommendations) que Datadog puede detectar. {{< /callout >}} -Las Recomendaciones de APM te ayudan a optimizar el rendimiento, la fiabilidad y los porcentajes de error de tus aplicaciones ofreciéndote oportunidades de optimización basadas en la telemetría recopilada sobre tus aplicaciones. Estas recomendaciones están diseñadas para: +## Requisitos previos {#prerequisites} + +Ciertas recomendaciones dependen de productos específicos de Datadog. Use el menú desplegable {{< ui >}}Recommendation Prerequisite{{< /ui >}} para filtrar las recomendaciones por los productos de Datadog en su configuración. + +Si planea usar [Bits Code][3] para implementar recomendaciones, debe [completar su configuración][4]. + +## Cómo funciona {#how-it-works} + +Las recomendaciones se basan en datos recopilados de diferentes partes de su stack: + +- Trazas distribuidas de Application Performance Monitoring (APM) +- Telemetría de base de datos de Database Monitoring (DBM) +- Sesiones y recorridos de usuario de Real User Monitoring (RUM) -- Identificar y resolver los cuellos de botella en el rendimiento -- Mejorar la fiabilidad y el tiempo de actividad del servicio -- Reducir la tasa de errores y mejorar la experiencia del usuario final +Datadog correlaciona estas fuentes para identificar oportunidades de mejora en el rendimiento, la confiabilidad y la experiencia del usuario. -{{< img src="/tracing/recommendations/apm_recommendations.png" alt="Tu descripción de imagen" style="width:100%;" >}} +Datadog clasifica las recomendaciones calculando una puntuación de prioridad que pondera el impacto potencial de un problema frente a las señales de telemetría, como el volumen relativo de solicitudes y las tendencias de rendimiento. Las perspectivas más críticas para mejorar la confiabilidad y el rendimiento del servicio aparecen primero. -## Requisitos previos +## Uso de recomendaciones {#using-recommendations} -Algunas recomendaciones dependen de productos específicos de Datadog. Utiliza el menú desplegable **Recommendation Prerequisite** (Requisito previo a la recomendación) para filtrar las recomendaciones que puedes esperar en función de tu configuración específica. +Para revisar las recomendaciones que requieren su atención: -## Cómo funciona +1. Vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Recommendations{{< /ui >}}][1]. +2. Filtre sus recomendaciones por estado o tipo. +3. Seleccione una recomendación de la lista para ver una descripción detallada del problema. +4. Revise el problema, el impacto y la recomendación de Datadog para resolverlo. +5. (Opcional) Para usar [Bits Code][3] y generar una corrección de código, en {{< ui >}}Next Steps{{< /ui >}}, haga clic en {{< ui >}}Fix with Bits{{< /ui >}}. +6. (Opcional) Para realizar un seguimiento de la corrección en Jira o Work Management, en {{< ui >}}Triage{{< /ui >}}, haga clic en {{< ui >}}Add Jira Ticket{{< /ui >}} o {{< ui >}}Add Work Item{{< /ui >}}. -Las Recomendaciones de APM se basan en datos recopilados de diferentes partes de tu stack tecnológico: +Después de revisar la recomendación, puede usar el menú desplegable {{< ui >}}FOR REVIEW{{< /ui >}} para cambiar el estado de la recomendación a {{< ui >}}REVIEWED{{< /ui >}}, {{< ui >}}IGNORED{{< /ui >}} o {{< ui >}}RESOLVED{{< /ui >}}. -- Sesiones y recorridos de los usuarios a partir de Real User Monitoring (RUM) -- Trazas distribuidas a partir de Application Performance Monitoring (APM) -- Datos de error a partir de Error Tracking -- Telemetría de bases de datos a partir de Database Monitoring (DBM) +**Nota**: En la [página de inicio de APM][5], las secciones {{< ui >}}Watchdog{{< /ui >}} y {{< ui >}}Error Tracking{{< /ui >}} también respetan el filtro de servicio seleccionado (o sus servicios personalizados cuando no hay ningún filtro establecido), lo que coincide con el alcance de las recomendaciones. Cuando se selecciona un servicio y no hay alertas o problemas que coincidan, la sección muestra un estado vacío con un botón {{< ui >}}Clear filter{{< /ui >}}, y el enlace {{< ui >}}View all{{< /ui >}} de Error Tracking está prefiltrado para ese servicio. -Al examinar conjuntamente estas fuentes, Datadog encuentra formas de ayudarte a mejorar el rendimiento, la fiabilidad y la experiencia del usuario. +## Visualización de recomendaciones en un Dashboard {#viewing-recommendations-on-a-dashboard} -## Uso de las Recomendaciones de APM +Agregue un widget de lista con APM Recommendations como fuente para revisar las recomendaciones junto con las métricas de rendimiento de su equipo. -Revisar las recomendaciones que requieren tu atención: +{{< img src="tracing/recommendations/apm_recommendations_dashboard_widget.png" alt="Un widget de lista configurado con APM Recommendations como fuente, que muestra las recomendaciones por prioridad, servicio, resumen, problema y estado" style="width:100%;" >}} -1. Ve a [**APM** > **Recommendations** (APM > Recomendaciones)][1]. -2. Revisa las recomendaciones en **For Review** (Para revisión). -3. Selecciona una recomendación de la lista para ver el problema, el impacto y cómo resolverlo. -4. Revisa el problema, su impacto y la recomendación de Datadog para resolverlo. +1. En cualquier Dashboard, cree un widget y seleccione {{< ui >}}List{{< /ui >}} como visualización. +2. Seleccione {{< ui >}}APM Recommendations{{< /ui >}} como fuente de datos. +3. Filtre por entorno, servicio, equipo, tipo de recomendación y estado. -Una vez abordada la recomendación, puedes utilizar el menú desplegable **FOR REVIEW** (PARA REVISIÓN) para cambiar el estado de la recomendación a *Reviewed*, *Ignored* o *Resolved* (Revisada, Ignorada o Resuelta). También puedes hacer clic en **Create Case** (Crear caso) para asignar la recomendación a un propietario y realizar un seguimiento del trabajo relacionado. +## Recomendaciones admitidas {#supported-recommendations} -## Recomendaciones compatibles + - +{{< multifilter-search >}} -{{< multifilter-search >}} +**Nota**: Si utiliza tanto APM como Database Monitoring (DBM), es posible que vea menos recomendaciones de índices faltantes aquí que en la [página de recomendaciones de DBM][2]. Las recomendaciones de APM solo muestran problemas de índices faltantes que Datadog puede asociar con un servicio de aplicación instrumentado. Las recomendaciones de índices faltantes que no se pueden vincular a un servicio específico aparecen solo en DBM. -## Referencias adicionales +## Lecturas adicionales {#further-reading} {{< partial name="whats-next/whats-next.html" >}} -[1]: https://app.datadoghq.com/apm/recommendations \ No newline at end of file +[1]: https://app.datadoghq.com/apm/recommendations +[2]: /es/database_monitoring/recommendations/ +[3]: /es/bits_ai/bits_code/ +[4]: /es/bits_ai/bits_code/setup/ +[5]: https://app.datadoghq.com/apm/home \ No newline at end of file diff --git a/hugo/content/es/tracing/trace_pipeline/trace_retention.md b/hugo/content/es/tracing/trace_pipeline/trace_retention.md new file mode 100644 index 00000000000..6f4075eb7c4 --- /dev/null +++ b/hugo/content/es/tracing/trace_pipeline/trace_retention.md @@ -0,0 +1,209 @@ +--- +aliases: +- /es/tracing/trace_retention/ +- /es/tracing/trace_queries/one_percent_flat_sampling/ +description: Aprenda a controlar la retención de trazas con filtros de retención. +further_reading: +- link: https://www.datadoghq.com/blog/rum-apm-retention-filters + tag: Blog + text: Unifique y correlacione datos de frontend y backend con filtros de retención +- link: /tracing/trace_pipeline/ingestion_mechanisms + tag: Documentación + text: Mecanismos de ingesta +- link: /tracing/trace_pipeline/ingestion_controls/ + tag: Documentación + text: Ingestion Control +- link: /tracing/trace_pipeline/metrics/ + tag: Documentación + text: Métricas de uso +- link: https://learn.datadoghq.com/courses/apm-rate-limit-retention + tag: Centro de aprendizaje + text: Limitación de tasa y retención de APM +- link: https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/ + tag: Centro de arquitectura + text: 'Dominio del rastreo distribuido: desafíos de volumen de datos y el enfoque + de Datadog para un muestreo eficiente' +title: Retención de trazas +--- +{{< img src="tracing/apm_lifecycle/retention_filters.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Filtros de retención" >}} + +Con Datadog APM, [la ingesta y la retención de trazas durante 15 días][1] son totalmente personalizables. + +Para hacer un seguimiento de su volumen de datos ingeridos e indexados, consulte la documentación de [Métricas de uso][2]. + +## Filtros de retención {#retention-filters} + +Después de que los tramos han sido ingeridos, algunos se conservan durante 15 días de acuerdo con los filtros de retención que están configurados en su cuenta: +1. El **[Filtro de retención inteligente](#datadog-intelligent-retention-filter)** retiene tramos para cada entorno, servicio, operación y recurso para diferentes distribuciones de latencia. +2. Se crean varios **[Filtros de retención predeterminados](#default-retention-filters)** para garantizar que mantenga la visibilidad sobre todos sus servicios y endpoints, así como errores y trazas de alta latencia. +3. Puede crear cualquier cantidad de **[Filtros de retención personalizados](#create-your-own-retention-filter)** para sus servicios, para capturar las trazas que más le importan a su negocio, según cualquier atributo de tramo o filtro de etiqueta. + +**Nota**: Se requiere el permiso `apm_retention_filter_write` para crear, eliminar, modificar, habilitar o deshabilitar filtros de retención. + +{{< img src="tracing/trace_indexing_and_ingestion/retention_filters/retention_filters.png" style="width:100%;" alt="Página de filtros de retención" >}} + +En Datadog, en la página de configuración de [Filtros de retención][3], puede ver una lista de todos los filtros de retención: + +Nombre del filtro +: El nombre de cada filtro de retención utilizado para indexar tramos. + +Consulta de filtro +: La consulta basada en etiquetas para cada filtro. + +Tasa de retención +: Un porcentaje de 0 a 100% de cuántos tramos coincidentes se indexan. Los tramos retenidos se eligen de manera uniforme entre los tramos que coinciden con la consulta de filtro. + +Tramos indexados +: La cantidad de tramos indexados por el filtro durante el período de tiempo seleccionado. + +Última actualización +: La fecha y el usuario que modificó por última vez el filtro de retención. + +Interruptor de habilitación +: Permite activar y desactivar los filtros. + +**Nota**: El orden de la lista de filtros de retención cambia el comportamiento de indexación. Si un tramo coincide con un filtro de retención al principio de la lista, el tramo se conserva o se descarta. Cualquier filtro de retención personalizado coincidente que se encuentre más abajo en la lista no captura el tramo ya procesado. + +La columna `Spans Indexed` para cada filtro de retención funciona con la métrica `datadog.estimated_usage.apm.indexed_spans`, que puede utilizar para realizar un seguimiento del uso de sus tramos indexados. Para obtener más información, lea [Métricas de uso][2] o explore el [panel de control de uso preconfigurado][4] disponible en su cuenta. + +
Los filtros de retención no afectan qué trazas son recopiladas por el Agent y enviadas a Datadog ("ingeridas"). Para controlar la ingesta, utilice controles de ingesta dedicados.
+ + +### Tipos de filtros de retención {#retention-filter-types} + +Existen dos tipos de filtros de retención: + +1. **Filtros de retención a nivel de tramo**: indexan solo los tramos específicos que coinciden con sus criterios de filtro. +2. **Filtros de retención a nivel de traza**: indexan trazas completas que contienen tramos que coinciden con sus criterios de filtro, lo que hace que las trazas completas sean buscables en Trace Queries. + +| Característica | Filtros de retención estándar | Filtros de retención a nivel de traza | +| ------- | ------------------------- | ----------------------------- | +| **Consulta de tramo** | Consulta de tramo + tasa de retención de tramo | Consulta de tramo + tasa de retención de tramo + tasa de retención de traza | +| **Qué se indexa** | Solo los tramos seleccionados por la consulta | Todos los tramos que pertenecen a trazas que contienen tramos que coinciden con la consulta | +| **Donde se puede consultar** | Span Explorer| Span Explorer y Trace Queries | + +**Nota**: Los tramos indexados indirectamente que conservan los filtros de retención a nivel de traza (es decir, los tramos que no coinciden directamente con la consulta pero pertenecen a trazas que sí lo hacen) no son evaluados por [monitores de análisis de trazas][19]. + +### Filtros de retención predeterminados {#default-retention-filters} + +Los siguientes filtros de retención están habilitados de forma predeterminada: +- El filtro de retención `Error Default` indexa los tramos de error con `status:error`. La tasa de retención y la consulta son configurables. Por ejemplo, para capturar errores de producción, establezca la consulta en `status:error, env:production`. Deshabilite el filtro de retención si no desea capturar los errores de forma predeterminada. +- El filtro de retención `App and API Protection Default` está habilitado si utiliza [App and API Protection][16]. Garantiza la retención de todos los tramos en las trazas que se han identificado como de impacto en la seguridad de la aplicación (un intento de ataque). +- El filtro de retención `Synthetics Default` está habilitado si utiliza Synthetic Monitoring. Garantiza que las trazas generadas a partir de pruebas sintéticas de API y de navegador permanezcan disponibles de forma predeterminada. Consulte [Synthetic APM][15] para obtener más información, incluido cómo correlacionar trazas con pruebas Synthetic. +- El filtro de retención `Dynamic Instrumentation Default` está habilitado si utiliza [Dynamic Instrumentation][17]. Garantiza que los tramos creados dinámicamente con Dynamic Instrumentation permanezcan disponibles a largo plazo de forma predeterminada. + +### Filtro de retención inteligente de Datadog {#datadog-intelligent-retention-filter} + +El filtro de retención inteligente de Datadog siempre está activo para sus servicios y mantiene una selección representativa de trazas sin que tenga que crear docenas de filtros de retención personalizados. Se compone de: +- [Muestreo de diversidad](#diversity-sampling) +- [Muestreo plano del uno por ciento](#one-percent-flat-sampling) + +**Nota:** [Consultas de trazas][11] se basan en los datos indexados por el filtro de Retención inteligente. + +Los tramos indexados por el filtro de Retención inteligente (muestreo de diversidad y muestreo plano del 1%) **no se cuentan para el uso** de tramos indexados y, por lo tanto, **no afectan su factura**. + +Si hay etiquetas o atributos específicos para los cuales desea indexar más tramos de los que retiene el filtro de Retención inteligente, entonces [cree su propio filtro de retención](#create-your-own-retention-filter). + +#### Muestreo de diversidad {#diversity-sampling} + +El muestreo de diversidad escanea los **tramos de entrada de servicio** y los retiene durante 30 días: + +- Al menos un tramo (y la traza asociada) para cada combinación de entorno, servicio, operación y recurso cada 15 minutos como máximo, para garantizar que siempre pueda encontrar trazas de ejemplo en las páginas de [servicio][9] y [recurso][10], incluso para puntos finales de bajo tráfico. +- Tramos de alta latencia para los tramos del `p75`, `p90` y `p95` percentil (y la traza asociada) para cada combinación de entorno, servicio, operación y recurso. +- Una selección representativa de errores, garantizando la diversidad de errores (por ejemplo, códigos de estado de respuesta 400, 500). + +El conjunto de datos capturado por el muestreo de diversidad no se muestrea de manera uniforme (es decir, no es proporcionalmente representativo de todo el tráfico). Está sesgado hacia errores y rastreos de alta latencia. + +#### Muestreo plano del 1% {#one-percent-flat-sampling} + +El muestreo plano del 1% captura: +1. Todas las trazas correlacionadas con el 1% de las sesiones RUM ingeridas**que tuvieron trazas ingeridas**, lo que garantiza que siempre pueda encontrar algunas sesiones indexadas que tengan datos de rastreo asociados. Esto mejora la [correlación entre APM y RUM][20], lo que le permite depurar problemas de usuario al visualizar tanto las sesiones de frontend como las trazas de backend juntas. La muestra se aplica según el `session_id`, lo que significa que todas las trazas vinculadas a la misma sesión RUM comparten una decisión de indexación coherente. +2. Una **muestra uniforme del 1%** de los [tramos ingeridos][12], aplicada según el `trace_id` para que todos los tramos en la misma traza compartan la misma decisión de muestreo. Utilice esta muestra para el monitoreo general del estado del sistema y el análisis de tendencias. + +Este mecanismo de muestreo es uniforme y es proporcionalmente representativo de todo el tráfico ingerido. Como resultado, es posible que los servicios y puntos finales de bajo tráfico no aparezcan en ese conjunto de datos si filtra en un período de tiempo corto. + +### Cree su propio filtro de retención {#create-your-own-retention-filter} + +Cree filtros de retención personalizados para conservar datos de traza específicos durante 15 días. Utilice cualquier etiqueta de tramo o atributo en la consulta de filtro para seleccionar y conservar los tramos que son más importantes para su negocio. + +Por ejemplo, puede crear filtros para conservar todas las trazas de: + +- Transacciones con tarjeta de crédito superiores a $100: `@transaction_amount:>100` +- Tramos de operación de pago que tengan una duración superior a 2 segundos en el entorno de producción: `resource_name:"GET /checkout" @duration:>2s env:prod` +- Versiones específicas de una aplicación de servicio de entrega en línea: `service:delivery-api @version:v2.0` + +Cuando indexa un tramo mediante un filtro de retención: + +- **Capacidad de búsqueda**: El tramo indexado se puede encontrar en Trace Explorer, paneles y se monitoriza durante 15 días. + +- **Contexto de visualización**: Cuando hace clic en cualquier tramo indexado en Trace Explorer, siempre ve su contexto de traza completo (todos los tramos principales y secundarios) en flame graph o en waterfall view, independientemente de si esos otros tramos fueron indexados. + +- **Contexto de búsqueda**: Aunque puede visualizar una traza completa, solo los tramos que fueron indexados específicamente por los filtros de retención se podrán buscar en Trace Explorer. + +{{< img src="tracing/trace_indexing_and_ingestion/retention_filters/retention_filter_create.png" style="width:90%;" alt="Crear filtro de retención">}} + +Para crear un filtro de retención: +1. Vaya a [{{< ui >}}APM{{< /ui >}} > {{< ui >}}Retention Filters{{< /ui >}}][18]. +1. Haga clic en {{< ui >}}Add Retention Filter{{< /ui >}}. +1. Defina el {{< ui >}}Retention Query{{< /ui >}} para seleccionar los tramos que desea conservar. Utilice cualquier tramo o atributo para filtrar tramos, tal como escribiría una consulta en [Trace Explorer][7]. +1. Establezca un {{< ui >}}Span rate{{< /ui >}} para definir el porcentaje de tramos que coinciden con esta consulta que deben indexarse. +1. Opcionalmente, establezca un {{< ui >}}Trace rate{{< /ui >}} para definir el porcentaje de trazas completas asociadas con los tramos que deben indexarse. Esto garantiza que otros tramos de las trazas asociadas con el tramo seleccionado por la consulta de retención también se indexen, de modo que los datos indexados se puedan consultar en [Consultas de traza][11]. +1. Establezca un nombre para el filtro. +1. Haga clic en {{< ui >}}Add Filter{{< /ui >}} para guardar el filtro. + +
Configurar una tasa de trazas puede aumentar significativamente el uso de sus tramos indexados.
+ +Por ejemplo, si configura un filtro de retención para indexar tramos de `service:my-service`: +- Configurar una tasa de tramos de `50%` ayuda a garantizar que aproximadamente el 50% de las trazas que contienen tramos que coinciden con `service:my-service` sean seleccionadas. Para las trazas seleccionadas, todos los tramos que coinciden con `service:my-service` son indexados. +- Configurar una tasa de trazas de `10%` ayuda a garantizar que el 10% de las trazas seleccionadas por la tasa de tramos sean indexadas completamente. Para esas trazas, todos los tramos de la traza (no solo los de `service:my-service`) son indexados. Suponiendo que las trazas tienen 100 tramos en promedio y 5 tramos de `service:my-service`, configurar una tasa de trazas indexa los 95 tramos restantes de la traza para el porcentaje configurado de trazas seleccionadas. +- La tasa de tramos se evalúa primero, y la tasa de trazas se aplica solo a las trazas seleccionadas por la tasa de tramos. + +Cuando crea un nuevo filtro o edita la tasa de retención de un filtro existente, Datadog muestra una estimación del cambio porcentual en el volumen de indexación global. + +Los filtros se conservan en orden secuencial. Si tiene un filtro ascendente que conserva tramos con la etiqueta `resource:POST /hello_world`, esos tramos no aparecen en la ventana {{< ui >}}Edit{{< /ui >}} de un filtro descendente que busca tramos con la misma etiqueta porque ya han sido conservados por el filtro ascendente. + +## Búsqueda de trazas y análisis en tramos indexados {#trace-search-and-analytics-on-indexed-spans} + +### En Trace Explorer, paneles y notebooks {#in-the-trace-explorer-dashboards-and-notebooks} + +De forma predeterminada, los tramos indexados por filtros de retención personalizados **y** el filtro de retención inteligente se incluyen en las [vistas agregadas][6] de Trace Explorer (series temporales, toplist, tabla), así como en las consultas de paneles y notebook. + + +El atributo `retained_by` está presente en todos los tramos conservados. Su valor es: +- `retained_by:retention_filter` si el tramo fue capturado por un [filtro de retención personalizado](#create-your-own-retention-filter), incluidos los [filtros de retención predeterminados](#default-retention-filters) y **no se configuró ninguna tasa de trazas**. Estos tramos no se incluyen en las consultas de trazas, ya que las consultas de trazas requieren que todos los tramos de una traza estén indexados. +- `retained_by:trace_retention_filter` si el tramo es capturado por un filtro de retención para el cual se configuró una tasa de trazas. +- `retained_by:diversity_sampling` si el tramo fue capturado por [muestreo de diversidad](#diversity-sampling) (parte del [filtro de retención inteligente](#datadog-intelligent-retention-filter)). +- `retained_by:flat_sampled` si el tramo fue indexado por el [muestreo fijo del 1%](#one-percent-flat-sampling). Filtrar más por motivo de retención: + - `@retention_reason:rum` para trazas vinculadas a sesiones de RUM muestreadas según el `session_id`. Use esto para analizar trazas correlacionadas con sesiones de usuario. + - `@retention_reason:trace` para trazas muestreadas uniformemente según el `trace_id`. Use esto para tendencias generales de rendimiento y análisis de todo el sistema. + +{{< img src="tracing/trace_indexing_and_ingestion/retention_filters/trace_analytics.png" style="width:100%;" alt="Faceta Retenido por" >}} + +### En los monitores de análisis de trazas{#in-trace-analytics-monitors} + +Los tramos indexados por el filtro de retención inteligente están **excluidos** de la evaluación de monitores de análisis de trazas de APM. + +## Lecturas adicionales {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /es/tracing/trace_pipeline/ +[2]: /es/tracing/trace_pipeline/metrics +[3]: https://app.datadoghq.com/apm/traces/retention-filters +[4]: https://app.datadoghq.com/dash/integration/30337/app-analytics-usage +[5]: /es/tracing/glossary/#service-entry-span +[6]: /es/tracing/trace_explorer/?tab=timeseriesview#indexed-spans-search-with-15-day-retention +[7]: /es/tracing/trace_explorer/?tab=listview#indexed-spans-search-with-15-day-retention +[8]: /es/tracing/glossary/#trace-root-span +[9]: /es/tracing/services/service_page/ +[10]: /es/tracing/services/resource_page/ +[11]: /es/tracing/trace_explorer/trace_queries +[12]: /es/tracing/trace_pipeline/ingestion_controls/ +[13]: /es/tracing/trace_explorer/ +[14]: /es/monitors/types/apm/?tab=traceanalytics +[15]: /es/synthetics/apm/ +[16]: /es/security/application_security/ +[17]: /es/dynamic_instrumentation/ +[18]: https://app.datadoghq.com/apm/traces/retention-filters +[19]: /es/monitors/types/apm/?tab=traceanalytics +[20]: /es/tracing/other_telemetry/rum/ \ No newline at end of file diff --git a/hugo/content/fr/api/latest/agent-observability/_index.md b/hugo/content/fr/api/latest/agent-observability/_index.md new file mode 100644 index 00000000000..b2de7306a16 --- /dev/null +++ b/hugo/content/fr/api/latest/agent-observability/_index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability +--- diff --git a/hugo/content/fr/api/latest/agent-observability/create-an-agent-observability-annotation-queue/index.md b/hugo/content/fr/api/latest/agent-observability/create-an-agent-observability-annotation-queue/index.md new file mode 100644 index 00000000000..59de67a10de --- /dev/null +++ b/hugo/content/fr/api/latest/agent-observability/create-an-agent-observability-annotation-queue/index.md @@ -0,0 +1,3 @@ +--- +title: Créer une file d'attente d'annotations pour Agent Observability +--- diff --git a/hugo/content/fr/api/latest/agent-observability/delete-annotation-queue-interactions/index.md b/hugo/content/fr/api/latest/agent-observability/delete-annotation-queue-interactions/index.md new file mode 100644 index 00000000000..217d882abc6 --- /dev/null +++ b/hugo/content/fr/api/latest/agent-observability/delete-annotation-queue-interactions/index.md @@ -0,0 +1,3 @@ +--- +title: Supprimer les interactions de la file d'attente d'annotations +--- diff --git a/hugo/content/fr/api/latest/agent-observability/export-an-agent-observability-dataset/index.md b/hugo/content/fr/api/latest/agent-observability/export-an-agent-observability-dataset/index.md new file mode 100644 index 00000000000..b1c9a9db679 --- /dev/null +++ b/hugo/content/fr/api/latest/agent-observability/export-an-agent-observability-dataset/index.md @@ -0,0 +1,3 @@ +--- +title: Exportez un jeu de données Agent Observability +--- diff --git a/hugo/content/fr/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md b/hugo/content/fr/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md new file mode 100644 index 00000000000..40bbdd5bc23 --- /dev/null +++ b/hugo/content/fr/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md @@ -0,0 +1,4 @@ +--- +title: Regroupez dans une liste les spans d'expérimentation d'Agent Observability + (v1) +--- diff --git a/hugo/content/fr/api/latest/llm-observability/delete-agent-observability-datasets/index.md b/hugo/content/fr/api/latest/llm-observability/delete-agent-observability-datasets/index.md new file mode 100644 index 00000000000..f23f44aa82c --- /dev/null +++ b/hugo/content/fr/api/latest/llm-observability/delete-agent-observability-datasets/index.md @@ -0,0 +1,3 @@ +--- +title: Supprimer les Agent Observability datasets +--- diff --git a/hugo/content/fr/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md b/hugo/content/fr/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md new file mode 100644 index 00000000000..ad224e8994c --- /dev/null +++ b/hugo/content/fr/api/latest/llm-observability/list-agent-observability-annotation-queues/index.md @@ -0,0 +1,3 @@ +--- +title: Lister les files d'attente d'annotation d'Agent Observability +--- diff --git a/hugo/content/fr/api/latest/rum-retention-filters/get-a-rum-exclusion-filter/index.md b/hugo/content/fr/api/latest/rum-retention-filters/get-a-rum-exclusion-filter/index.md new file mode 100644 index 00000000000..dd23826f09e --- /dev/null +++ b/hugo/content/fr/api/latest/rum-retention-filters/get-a-rum-exclusion-filter/index.md @@ -0,0 +1,3 @@ +--- +title: Obtenez un filtre d'exclusion RUM +--- diff --git a/hugo/content/fr/api/latest/rum-retention-filters/update-a-rum-exclusion-filter/index.md b/hugo/content/fr/api/latest/rum-retention-filters/update-a-rum-exclusion-filter/index.md new file mode 100644 index 00000000000..0732deb0f81 --- /dev/null +++ b/hugo/content/fr/api/latest/rum-retention-filters/update-a-rum-exclusion-filter/index.md @@ -0,0 +1,3 @@ +--- +title: Mettre à jour un filtre d'exclusion RUM +--- diff --git a/hugo/content/fr/api/latest/usage-metering/list-usage-quotas/index.md b/hugo/content/fr/api/latest/usage-metering/list-usage-quotas/index.md new file mode 100644 index 00000000000..bb290121669 --- /dev/null +++ b/hugo/content/fr/api/latest/usage-metering/list-usage-quotas/index.md @@ -0,0 +1,3 @@ +--- +title: Lister les quotas d'utilisation +--- diff --git a/hugo/content/fr/api/latest/usage-metering/update-a-usage-quota/index.md b/hugo/content/fr/api/latest/usage-metering/update-a-usage-quota/index.md new file mode 100644 index 00000000000..cb885311e16 --- /dev/null +++ b/hugo/content/fr/api/latest/usage-metering/update-a-usage-quota/index.md @@ -0,0 +1,3 @@ +--- +title: Mettre à jour un quota d'utilisation +--- diff --git a/hugo/content/fr/containers/troubleshooting/admission-controller.md b/hugo/content/fr/containers/troubleshooting/admission-controller.md index c457d34988a..eb0a66fec05 100644 --- a/hugo/content/fr/containers/troubleshooting/admission-controller.md +++ b/hugo/content/fr/containers/troubleshooting/admission-controller.md @@ -1,34 +1,37 @@ --- -description: Dépanner les problèmes courants avec le contrôleur d'admission de l'Agent - de cluster de Datadog et l'injection de bibliothèque +description: Dépannage des problèmes courants liés au contrôleur d'admission du Cluster + Agent Datadog et à l'injection de bibliothèque further_reading: - link: https://www.datadoghq.com/blog/auto-instrument-kubernetes-tracing-with-datadog/ tag: Blog - text: Instrumenter automatiquement le tracing Kubernetes + text: Instrumentation automatique du traçage Kubernetes - link: /containers/cluster_agent/admission_controller/ tag: Documentation text: Contrôleur d'admission de lʼAgent de cluster - link: /tracing/trace_collection/library_injection_local/?tab=kubernetes tag: Documentation - text: Injection de bibliothèque Kubernetes + text: Injection de bibliothèque dans Kubernetes +- link: https://www.datadoghq.com/architecture/instrument-your-app-using-the-datadog-operator-and-admission-controller/ + tag: Centre d'architecture + text: Instrumentez votre application à l'aide du Datadog Operator et du contrôleur + d'admission title: Dépannage du contrôleur d'admission --- +## Présentation {#overview} -## Présentation +Cette page fournit des informations de dépannage pour le [Admission Controller][1] du Datadog Cluster Agent. -Cette page fournit des informations de dépannage pour le [contrôleur d'admission][1] de l'Agent de cluster de Datadog. +## Problèmes courants {#common-problems} -## Problèmes courants +### Mettre à jour les pods préexistants {#update-pre-existing-pods} +Le contrôleur d'admission répond à la création de nouveaux pods au sein de votre cluster Kubernetes : lors de la création d'un pod, l'Agent de cluster reçoit une requête de Kubernetes et répond avec les détails des modifications (le cas échéant) à apporter au pod. -### Mettre à jour les pods préexistants -Le contrôleur d'admission répond à la création de nouveaux pods dans votre cluster Kubernetes : lors de la création d'un pod, l'Agent de cluster reçoit une requête de Kubernetes et répond avec les détails des modifications (le cas échéant) à apporter au pod. +Par conséquent, **le contrôleur d'admission ne modifie pas les pods existants au sein de votre cluster**. Si vous avez récemment activé le contrôleur d'admission ou effectué d'autres modifications environnementales, supprimez votre pod existant et laissez Kubernetes le recréer. Cela garantit que le contrôleur d'admission met à jour votre pod. -Par conséquent, **le contrôleur d'admission ne mute pas les pods existants dans votre cluster**. Si vous avez récemment activé le contrôleur d'admission ou effectué d'autres modifications environnementales, supprimez votre pod existant et laissez Kubernetes le recréer. Cela garantit que le contrôleur d'admission met à jour votre pod. +### Étiquettes et annotations {#labels-and-annotations} +Le Datadog Cluster Agent répond aux étiquettes et aux annotations sur le pod créé—**pas** à la charge de travail (Deployment, DaemonSet, CronJob, etc.) qui a créé ce pod. Assurez-vous que votre modèle de pod y fait référence en conséquence. -### Étiquettes et annotations -L'Agent de cluster répond aux étiquettes et annotations sur le pod créé—**pas** la workload (Deployment, DaemonSet, CronJob, etc.) qui a créé ce pod. Assurez-vous que votre modèle de pod référence cela en conséquence. - -Par exemple, le modèle suivant définit l'[étiquette pour la configuration APM][2] et l'[annotation pour l'injection de bibliothèque][3] : +Par exemple, le modèle suivant définit l'[étiquette pour la configuration APM][2] et l'[annotation pour l'injection de bibliothèque][3] : ```yaml apiVersion: apps/v1 @@ -48,20 +51,21 @@ spec: #(...) ``` -### Les pods d'application ne sont pas créés +### Les pods d'application ne sont pas créés {#application-pods-are-not-created} -Le mode d'injection du contrôleur d'admission (`socket`, `hostip`, `service`) est défini par la configuration de votre Agent de cluster. Par exemple, si vous avez le mode `socket` activé dans votre Agent, le contrôleur d'admission utilise également le mode `socket`. +Le mode d'injection du contrôleur d'admission (`socket`, `hostip`, `service`) est défini par la configuration de votre Datadog Cluster Agent. Par exemple, si vous avez activé le mode `socket` dans votre Agent, l'Admission Controller utilise également le mode `socket`. Si vous utilisez GKE Autopilot ou OpenShift, vous devez utiliser un mode d'injection spécifique. -#### GKE Autopilot +#### GKE Autopilot {#gke-autopilot} -GKE Autopilot restreint l'utilisation de tous les `volumes` avec un `hostPath`. Par conséquent, si le contrôleur d'admission utilise le mode `socket`, les pods sont bloqués de la planification par le GKE Warden. +GKE Autopilot restreint l'utilisation de tout `volumes` avec un `hostPath`. Par conséquent, si l'Admission Controller utilise le mode `socket`, les Pods sont empêchés d'être planifiés par le GKE Warden. -L'activation du mode GKE Autopilot dans le chart Helm désactive le mode `socket` pour éviter que cela ne se produise. Pour activer APM, activez le port et utilisez plutôt la méthode `hostip` ou `service`. Le contrôleur d'admission utilisera par défaut `hostip` pour correspondre. +L'activation du mode GKE Autopilot dans le chart Helm désactive le mode `socket` pour éviter que cela ne se produise. Pour activer l'APM, activez le port et utilisez plutôt la méthode `hostip` ou `service`. L'Admission Controller utilisera par défaut `hostip` pour correspondre. {{< tabs >}} {{% tab "Helm" %}} + ```yaml datadog: apm: @@ -75,16 +79,17 @@ providers: {{% /tab %}} {{< /tabs >}} -Consultez les [distributions Kubernetes][17] pour plus de détails de configuration concernant Autopilot. +Reportez-vous à [Kubernetes Distributions][17] pour plus de détails de configuration concernant Autopilot. -#### OpenShift +#### OpenShift {#openshift} -OpenShift dispose de `SecurityContextConstraints` (SCC) qui sont requis pour déployer des pods avec des autorisations supplémentaires, tels qu'un `volume` avec un `hostPath`. Les composants Datadog sont déployés avec des SCC pour permettre une activité spécifique aux pods Datadog, mais Datadog ne crée pas de SCC pour d'autres pods. Le contrôleur d'admission peut ajouter la configuration basée sur socket à vos pods d'application, ce qui entraîne leur échec de déploiement. +OpenShift dispose de `SecurityContextConstraints` (SCCs) qui sont nécessaires pour déployer des pods avec des autorisations supplémentaires, comme un `volume` avec un `hostPath`. Les composants Datadog sont déployés avec des SCC pour permettre une activité spécifique aux pods Datadog, mais Datadog ne crée pas de SCC pour d'autres pods. L'Admission Controller pourrait ajouter la configuration basée sur socket à vos pods d'application, ce qui empêcherait leur déploiement. -Si vous utilisez OpenShift, utilisez le mode `hostip`. La configuration suivante active le mode `hostip` en désactivant les options socket : +Si vous utilisez OpenShift, utilisez le mode `hostip`. La configuration suivante active le mode `hostip` en désactivant les options de socket : {{< tabs >}} -{{% tab "Operator Datadog" %}} +{{% tab "Datadog Operator" %}} + ```yaml apiVersion: datadoghq.com/v2alpha1 kind: DatadogAgent @@ -104,25 +109,26 @@ spec: unixDomainSocketConfig: enabled: false ``` -En alternative, vous pouvez définir `features.admissionController.agentCommunicationMode` sur `hostip` ou `service` directement. +Alternativement, vous pouvez définir `features.admissionController.agentCommunicationMode` sur `hostip` ou `service` directement. {{% /tab %}} {{% tab "Helm" %}} + ```yaml datadog: apm: portEnabled: true socketEnabled: false ``` -En alternative, vous pouvez définir `clusterAgent.admissionController.configMode` sur `hostip` ou `service` directement. +Alternativement, vous pouvez définir `clusterAgent.admissionController.configMode` sur `hostip` ou `service` directement. {{% /tab %}} {{< /tabs >}} -Consultez les [distributions Kubernetes][18] pour plus de détails de configuration concernant OpenShift. +Reportez-vous à [Kubernetes Distributions][18] pour plus de détails de configuration concernant OpenShift. -## Afficher le statut du contrôleur d'admission +## Afficher le statut du contrôleur d'admission {#view-admission-controller-status} -La sortie de statut de l'Agent de cluster fournit des informations pour vérifier qu'il a créé le `datadog-webhook` pour la `MutatingWebhookConfiguration` et dispose d'un certificat valide. +La sortie de statut du Datadog Cluster Agent fournit des informations pour vérifier qu'il a créé le `datadog-webhook` pour le `MutatingWebhookConfiguration` et qu'il dispose d'un certificat valide. Exécutez la commande suivante : @@ -130,13 +136,13 @@ Exécutez la commande suivante : % kubectl exec -it -- agent status ``` -Votre sortie ressemble à ce qui suit : +Votre sortie ressemble à ce qui suit : ``` ... Admission Controller ==================== - + Webhooks info ------------- MutatingWebhookConfigurations name: datadog-webhook @@ -159,7 +165,7 @@ Admission Controller Object selector: &LabelSelector{MatchLabels:map[string]string{admission.datadoghq.com/enabled: true,},MatchExpressions:[]LabelSelectorRequirement{},} Rule 1: Operations: [CREATE] - APIGroups: [] - APIVersions: [v1] - Resources: [pods] Service: default/datadog-admission-controller - Port: 443 - Path: /injecttags - + Secret info ----------- Secret name: webhook-certificate @@ -170,14 +176,14 @@ Admission Controller ... ``` -Cette sortie est relative à l'Agent de cluster déployé dans l'espace de nommage `default`. Le `Service` et le `Secret` doivent correspondre à l'espace de nommage utilisé. +Cette sortie est relative au Datadog Cluster Agent déployé dans l'espace de nom `default`. Les `Service` et `Secret` doivent correspondre à l'espace de nom utilisé. -## Afficher les logs du contrôleur d'admission +## Afficher les logs du contrôleur d'admission {#view-admission-controller-logs} -Les logs de debug aident à valider que vous avez configuré correctement le contrôleur d'admission. [Activez les logs de debug][3] avec la configuration suivante : +Les logs de débogage aident à valider que vous avez correctement configuré le contrôleur d'admission. [Activez les logs de débogage][3] avec la configuration suivante : {{< tabs >}} -{{% tab "Operator Datadog" %}} +{{% tab "Datadog Operator" %}} ```yaml apiVersion: datadoghq.com/v2alpha1 @@ -203,9 +209,9 @@ datadog: {{% /tab %}} {{< /tabs >}} -### Valider `datadog-webhook` +### Valider `datadog-webhook` {#validate-datadog-webhook} -**Exemples de logs** : +**Exemple de logs** : ``` | CLUSTER | INFO | (pkg/clusteragent/admission/controllers/secret/controller.go:73 in Run) | Starting secrets controller for default/webhook-certificate @@ -219,11 +225,11 @@ datadog: | CLUSTER | DEBUG | (pkg/clusteragent/admission/controllers/webhook/controller_base.go:176 in processNextWorkItem) | Webhook datadog-webhook reconciled successfully ``` -Si vous ne voyez pas que le webhook `datadog-webhook` a été réconcilié avec succès, assurez-vous d'avoir correctement activé le contrôleur d'admission conformément aux [instructions de configuration][1]. +Si vous ne voyez pas que le webhook `datadog-webhook` a été réconcilié avec succès, assurez-vous d'avoir correctement activé le contrôleur d'admission conformément aux [instructions de configuration][1]. -### Valider l'injection +### Valider l'injection {#validate-injection} -**Exemples de logs** : +**Exemple de logs** : ``` | CLUSTER | DEBUG | (pkg/clusteragent/admission/controllers/secret/controller.go:140 in enqueue) | Adding object with key default/webhook-certificate to the queue @@ -236,20 +242,21 @@ Si vous ne voyez pas que le webhook `datadog-webhook` a été réconcilié avec | CLUSTER | DEBUG | (pkg/clusteragent/admission/mutate/auto_instrumentation.go:336 in injectLibInitContainer) | Injecting init container named "datadog-lib-python-init" with image "gcr.io/datadoghq/dd-lib-python-init:v1.18.0" into pod with generate name example-pod-123456789- ``` -Si vous voyez des erreurs avec l'injection pour un pod donné, contactez l'assistance Datadog avec votre configuration Datadog et votre configuration de pod. +Si vous voyez des erreurs concernant l'injection pour un pod donné, contactez le support Datadog avec votre configuration Datadog et votre configuration de pod. -Si vous ne voyez pas les tentatives d'injection pour *aucun* pod, vérifiez vos paramètres `mutateUnlabelled` et assurez-vous que vos étiquettes de pod correspondent aux valeurs attendues. Si celles-ci correspondent, votre problème est probablement lié au réseau entre le control plane, le webhook et le service. Consultez [Réseau](#networking) pour plus d'informations. +Si vous ne voyez pas les tentatives d'injection pour *quelconque* pod, vérifiez vos paramètres `mutateUnlabelled` et assurez-vous que vos étiquettes de pod correspondent aux valeurs attendues. Si elles correspondent, votre problème est probablement lié au réseau entre le plan de contrôle, le webhook et le service. Consultez [Mise en réseau](#networking) pour plus d'informations. -## Réseau +## Mise en réseau {#networking} -### Politiques réseau +### Politiques réseau {#network-policies} -Les [politiques réseau][5] Kubernetes vous aident à contrôler différents flux de trafic entrant (inbound) et sortant (outbound) vers vos pods. +Les [Politiques réseau][5] Kubernetes vous aident à contrôler les différents flux de trafic entrants (ingress) et sortants (egress) vers vos pods. -Si vous utilisez des politiques réseau, Datadog recommande de créer des politiques correspondantes pour l'Agent de cluster afin de garantir la connectivité au pod sur ce port. Vous pouvez le faire avec la configuration suivante : +Si vous utilisez des politiques réseau, Datadog recommande de créer des politiques correspondantes pour le Datadog Cluster Agent afin d'assurer la connectivité au pod sur ce port. Vous pouvez le faire avec la configuration suivante : {{< tabs >}} -{{% tab "Operator Datadog" %}} +{{% tab "Datadog Operator" %}} + ```yaml apiVersion: datadoghq.com/v2alpha1 kind: DatadogAgent @@ -264,6 +271,7 @@ spec: ``` {{% /tab %}} {{% tab "Helm" %}} + ```yaml datadog: #(...) @@ -274,51 +282,51 @@ datadog: {{% /tab %}} {{< /tabs >}} -Définissez `flavor` sur `kubernetes` pour créer une ressource `NetworkPolicy`. +Définissez `flavor` sur `kubernetes` pour créer une ressource `NetworkPolicy`. -En alternative, pour les environnements basés sur Cilium, définissez `flavor` sur `cilium` pour créer une ressource `CiliumNetworkPolicy`. +Alternativement, pour les environnements basés sur Cilium, définissez `flavor` sur `cilium` pour créer une ressource `CiliumNetworkPolicy`. -### Dépannage réseau pour les distributions Kubernetes +### Dépannage réseau pour les distributions Kubernetes {#network-troubleshooting-for-kubernetes-distributions} -Lorsqu'un pod est créé, le cluster Kubernetes envoie une requête depuis le control plane, vers `datadog-webhook`, via le service, et enfin vers le pod de l'Agent de cluster. Cette requête nécessite une connectivité entrante depuis le control plane vers le nœud sur lequel se trouve l'Agent de cluster, sur son port de contrôleur d'admission (`8000`). Une fois cette requête résolue, l'Agent de cluster mute votre pod pour configurer la connexion réseau pour le traceur Datadog. -Le service de contrôleur d'admission reçoit le trafic sur le port 443 et le transfère au pod de l'Agent de cluster sur le port 8000. +Lorsqu'un pod est créé, le cluster Kubernetes envoie une requête depuis le plan de contrôle vers `datadog-webhook`, via le service, et enfin vers le pod du Datadog Cluster Agent. Cette requête nécessite une connectivité entrante du plan de contrôle vers le nœud sur lequel se trouve le Datadog Cluster Agent, via son port de contrôleur d'admission (`8000`). Une fois cette requête résolue, le Datadog Cluster Agent modifie votre pod pour configurer la connexion réseau pour le SDK Datadog. +Le service du contrôleur d'admission reçoit le trafic sur le port 443 et le transfère au pod du Datadog Cluster Agent sur le port 8000. -Selon votre distribution Kubernetes, cela peut avoir des exigences supplémentaires pour vos règles de sécurité et paramètres de contrôleur d'admission. +Selon votre distribution Kubernetes, cela peut entraîner des exigences supplémentaires pour vos règles de sécurité et vos paramètres de contrôleur d'admission. -#### Amazon Elastic Kubernetes Service (EKS) +#### Amazon Elastic Kubernetes Service (EKS) {#amazon-elastic-kubernetes-service-eks} -Dans un cluster EKS, vous pouvez déployer le pod de l'Agent de cluster sur n'importe lequel de vos nœuds basés sur Linux par défaut. Ces nœuds et leurs instances EC2 nécessitent un [groupe de sécurité][6] avec la [règle entrante][7] suivante : -- **Protocole** : TCP -- **Plage de ports** : `8000`, ou une plage qui couvre `8000` -- **Source** : l'ID du groupe de sécurité du cluster _ou_ l'un des groupes de sécurité supplémentaires de votre cluster. Vous pouvez trouver ces ID dans la console EKS, sous l'onglet _Networking_ pour votre cluster EKS. +Dans un cluster EKS, vous pouvez déployer le pod du Datadog Cluster Agent sur n'importe lequel de vos nœuds basés sur Linux par défaut. Ces nœuds et leurs instances EC2 ont besoin d'un [groupe de sécurité][6] avec la [règle entrante][7] suivante : +- **Protocole** : TCP +- **Plage de ports** : `8000`, ou une plage couvrant `8000` +- **Source** : L'ID de _soit_ le groupe de sécurité du cluster, soit l'un des groupes de sécurité supplémentaires de votre cluster. Vous pouvez trouver ces ID dans la console EKS, sous l'onglet _Mise en réseau_ de votre cluster EKS. -Cette règle de groupe de sécurité permet au control plane d'accéder au nœud et à l'Agent de cluster en aval sur le port `8000`. +Cette règle de groupe de sécurité permet au plan de contrôle d'accéder au nœud et au Datadog Cluster Agent en aval via le port `8000`. -Si vous disposez de plusieurs [groupes de nœuds managés][8], chacun avec des groupes de sécurité distincts, ajoutez cette règle entrante à chaque groupe de sécurité. +Si vous avez plusieurs [groupes de nœuds gérés][8], chacun avec des groupes de sécurité distincts, ajoutez cette règle entrante à chaque groupe de sécurité. -##### Journalisation du control plane +##### Journalisation du plan de contrôle {#control-plane-logging} -Pour valider votre configuration réseau, activez la [journalisation du control plane EKS][9] pour l'API Server. Vous pouvez afficher ces logs dans la [console CloudWatch][10]. +Pour valider votre configuration réseau, activez la [journalisation du plan de contrôle EKS][9] pour le serveur API. Vous pouvez consulter ces logs dans la [console CloudWatch][10]. -Ensuite, supprimez l'un de vos pods pour redéclencher une requête via le contrôleur d'admission. Lorsque la requête échoue, vous pouvez afficher des logs ressemblant à ce qui suit : +Ensuite, supprimez l'un de vos pods pour déclencher à nouveau une requête via le contrôleur d'admission. Lorsque la requête échoue, vous pouvez consulter des logs qui ressemblent à ce qui suit : ``` W0908 10 dispatcher.go:202] Failed calling webhook, failing open datadog.webhook.auto.instrumentation: failed calling webhook "datadog.webhook.auto.instrumentation": failed to call webhook: Post "https://datadog-cluster-agent-admission-controller.default.svc:443/injectlib?timeout=10s": context deadline exceeded E0908 10 dispatcher.go:206] failed calling webhook "datadog.webhook.auto.instrumentation": failed to call webhook: Post "https://datadog-cluster-agent-admission-controller.default.svc:443/injectlib?timeout=10s": context deadline exceeded ``` -Ces échecs sont relatifs à un Agent de cluster déployé dans l'espace de nommage `default` ; le nom DNS s'ajuste en fonction de l'espace de nommage utilisé. +Ces échecs sont relatifs à un Datadog Cluster Agent déployé dans l'espace de nom `default` ; le nom DNS s'ajuste en fonction de l'espace de nom utilisé. -Vous pouvez également voir des échecs pour les autres webhooks du contrôleur d'admission, tels que `datadog.webhook.tags` et `datadodg.webhook.config`. +Vous pouvez également constater des échecs pour les autres webhooks du contrôleur d'admission, tels que `datadog.webhook.tags` et `datadodg.webhook.config`. -**Remarque** : EKS génère souvent deux flux de logs dans le groupe de logs CloudWatch pour le cluster. Assurez-vous de vérifier les deux pour ces types de logs. +**Remarque :** EKS génère souvent deux flux de logs au sein du groupe de logs CloudWatch pour le cluster. Assurez-vous de vérifier les deux pour ces types de logs. -#### Azure Kubernetes Service (AKS) +#### Azure Kubernetes Service (AKS) {#azure-kubernetes-service-aks} -Pour utiliser des [webhooks de contrôleur d'admission sur AKS][11], utilisez la configuration suivante : +Pour utiliser [les webhooks du contrôleur d'admission sur AKS][11], utilisez la configuration suivante : {{< tabs >}} -{{% tab "Operator Datadog" %}} +{{% tab "Datadog Operator" %}} ```yaml kind: DatadogAgent @@ -351,27 +359,28 @@ L'option `providers.aks.enabled` définit la variable d'environnement `DD_ADMISS {{% /tab %}} {{< /tabs >}} -#### Google Kubernetes Engine (GKE) +#### Google Kubernetes Engine (GKE) {#google-kubernetes-engine-gke} -Si vous utilisez un [cluster privé GKE][12], vous devez ajuster vos règles de pare-feu pour autoriser l'accès entrant depuis le control plane vers le port `8000`. +Si vous utilisez un [cluster privé GKE][12], vous devez ajuster vos règles de pare-feu pour autoriser l'accès entrant depuis le plan de contrôle vers le port `8000`. [Ajoutez une règle de pare-feu][13] pour autoriser l'entrée via TCP sur le port `8000`. -Vous pouvez également modifier une règle existante. Par défaut, le réseau de votre cluster dispose d'une règle de pare-feu nommée `gke--master`. Assurez-vous que les _filtres source_ de cette règle incluent [le bloc CIDR du control plane de votre cluster][14]. Modifiez cette règle pour autoriser l'accès via le protocole `tcp` sur le port `8000`. +Vous pouvez également modifier une règle existante. Par défaut, le réseau de votre cluster possède une règle de pare-feu nommée `gke--master`. Assurez-vous que les _filtres sources_ de cette règle incluent [le bloc CIDR du plan de contrôle de votre cluster][14]. Modifiez cette règle pour autoriser l'accès via le protocole `tcp` sur le port `8000`. Pour plus d'informations, consultez [Ajout de règles de pare-feu pour des cas d'utilisation spécifiques][15] dans la documentation GKE. -#### Rancher +#### Rancher {#rancher} -Si vous utilisez Rancher avec un cluster EKS ou un cluster privé GKE, une configuration supplémentaire est requise. Pour plus d'informations, consultez [Rancher Webhook - Common Issues][16] dans la documentation Rancher. +Si vous utilisez Rancher avec un cluster EKS ou un cluster GKE privé, une configuration supplémentaire est requise. Pour plus d'informations, consultez [Rancher Webhook - Problèmes courants][16] dans la documentation Rancher. -**Remarque** : étant donné que le webhook du contrôleur d'admission de Datadog fonctionne de manière similaire au webhook Rancher, Datadog a besoin d'un accès au port `8000` au lieu du `9443` de Rancher. +**Remarque** : Étant donné que le webhook du contrôleur d'admission de Datadog fonctionne de manière similaire au webhook de Rancher, Datadog a besoin d'accéder au port `8000` au lieu du port `9443` de Rancher. -##### Rancher et EKS -Pour utiliser Rancher dans un cluster EKS, déployez le pod de l'Agent de cluster avec la configuration suivante : +##### Rancher et EKS {#rancher-and-eks} +Pour utiliser Rancher dans un cluster EKS, déployez le pod Cluster Agent avec la configuration suivante : {{< tabs >}} -{{% tab "Operator Datadog" %}} +{{% tab "Datadog Operator" %}} + ```yaml apiVersion: datadoghq.com/v2alpha1 kind: DatadogAgent @@ -385,6 +394,7 @@ spec: ``` {{% /tab %}} {{% tab "Helm" %}} + ```yaml datadog: #(...) @@ -395,12 +405,12 @@ clusterAgent: {{% /tab %}} {{< /tabs >}} -Vous devez également ajouter une règle entrante de groupe de sécurité, comme décrit dans la section [Amazon EKS](#amazon-elastic-kubernetes-service-eks) sur cette page. +Vous devez également ajouter une règle de trafic entrant pour le groupe de sécurité, comme décrit dans la section [Amazon EKS](#amazon-elastic-kubernetes-service-eks) de cette page. -##### Rancher et GKE -Pour utiliser Rancher dans un cluster privé GKE, modifiez vos règles de pare-feu pour autoriser l'accès entrant via TCP sur le port `8000`. Consultez la section [GKE](#google-kubernetes-engine-gke) sur cette page. +##### Rancher et GKE {#rancher-and-gke} +Pour utiliser Rancher dans un cluster GKE privé, modifiez vos règles de pare-feu pour autoriser l'accès entrant via TCP sur le port `8000`. Consultez la section [GKE](#google-kubernetes-engine-gke) de cette page. -## Pour aller plus loin +## Pour aller plus loin {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/fr/database_monitoring/guide/sql_extended_events.md b/hugo/content/fr/database_monitoring/guide/sql_extended_events.md new file mode 100644 index 00000000000..2a61161de04 --- /dev/null +++ b/hugo/content/fr/database_monitoring/guide/sql_extended_events.md @@ -0,0 +1,422 @@ +--- +aliases: +- /fr/database_monitoring/sql_extended_events +further_reading: +- link: /database_monitoring/ + tag: Documentation + text: Database Monitoring +- link: /database_monitoring/setup_sql_server/ + tag: Documentation + text: Configuration de SQL Server +- link: /database_monitoring/guide/parameterized_queries/ + tag: Documentation + text: Configuration de la capture de requêtes avec des valeurs de paramètres +- link: /database_monitoring/troubleshooting/ + tag: Documentation + text: Dépannage de la solution Database Monitoring +title: Configuration de la capture de fin de requête et d'erreur de requête sur SQL + Server +--- +Cette fonctionnalité collecte les événements de fin de requête et d'erreur de requête à partir de vos instances SQL Server à l'aide des événements étendus (XE). Elle offre une visibilité sur : +- Les métriques et le comportement des requêtes SQL avec des valeurs de paramètres +- Les erreurs et les délais d'attente survenus lors de l'exécution + +Pour plus d'informations sur la capture des paramètres de requête sur différents systèmes de base de données, consultez [Configuration de la capture de requêtes avec des valeurs de paramètres][1]. + +[1]: /fr/database_monitoring/guide/parameterized_queries/ + +Ces données sont utiles pour : +- L'analyse des performances +- Débogage du comportement de l'application +- Audit des erreurs ou délais d'attente inattendus + + +## Avant de commencer {#before-you-begin} + +Vous devez configurer Database Monitoring pour votre instance [SQL Server][1] avant de poursuivre ce guide. + + +Bases de données prises en charge +: SQL Server + +Déploiements pris en charge +: Tous les types de déploiement. + +Versions de l'Agent prises en charge +: 7.67.0+ + +## Configuration {#setup} +{{< tabs >}} +{{% tab "SQL Server hors Azure" %}} + +1. Dans votre instance SQL Server, créez les sessions Extended Events (XE) suivantes. Ces sessions peuvent être créées sur n'importe quelle base de données au sein de l'instance. + +La session XE `datadog_query_completions` capture les requêtes SQL de longue durée (plus d'une seconde) provenant des appels RPC, des lots SQL et des procédures stockées. + +```sql +-- Query completions: RPC, batch, and stored procedure events +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON SERVER; +GO + +CREATE EVENT SESSION datadog_query_completions ON SERVER -- datadog requires this exact session name +ADD EVENT sqlserver.rpc_completed ( -- capture remote procedure call completions + ACTION ( -- datadog requires these exact actions for rpc_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.sql_batch_completed( -- capture batch completions + ACTION ( -- datadog requires these exact actions for sql_batch_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.module_end( -- capture stored procedure completions + SET collect_statement = (1) + ACTION ( -- datadog requires these exact actions for module_end + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not exceed 1024, values above 1 MB may result in data loss due to SQLServer internals + TRACK_CAUSALITY = ON, -- allows datadog to correlate related events across activity ID + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems (not supported on RDS) + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_completions ON SERVER STATE = START; +GO +``` + +La session XE datadog_query_errors capture les erreurs SQL de [gravité ≥ 11][1] et les délais d'expiration de requête (également appelés [événements d'attention][2]), permettant à Datadog de signaler les échecs et les délais d'expiration de requête. + +```sql +-- Errors and timeouts: SQL errors and attention events +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON SERVER; +GO +CREATE EVENT SESSION datadog_query_errors ON SERVER +ADD EVENT sqlserver.error_reported( + ACTION( -- datadog requires these exact actions for error_reported + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE severity >= 11 +), +ADD EVENT sqlserver.attention( + ACTION( -- datadog requires these exact actions for attention + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not change, setting this larger than 1 MB may result in data loss due to SQLServer internals + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems (not supported on RDS) + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_errors ON SERVER STATE = START; +GO +``` + + **Remarque** : Si vous utilisez Amazon RDS pour SQL Server, supprimez la ligne `MEMORY_PARTITION_MODE = PER_NODE` des deux configurations de session, car cette option n'est pas prise en charge sur les instances RDS. + +2. Dans la configuration du Datadog Agent, activez `collect_xe` dans `sqlserver.d/conf.yaml`. +Consultez l'exemple [conf.yaml.example][3] pour connaître toutes les options de configuration disponibles. + +```yaml + collect_xe: + query_completions: + enabled: true + query_errors: + enabled: true +``` +Pour collecter les instructions de requête avec les valeurs de paramètres, activez `collect_raw_query_statement` dans `sqlserver.d/conf.yaml`. Pour plus d'informations sur la capture des paramètres, consultez [Configuring Query Capture with Parameter Values][1]. + +```yaml + collect_raw_query_statement: + enabled: true +``` + +
Les instructions de requête brutes peuvent contenir des informations sensibles (par exemple, des mots de passe dans le texte de la requête) ou des informations personnellement identifiables. L'activation de cette option permet à Datadog de collecter et d'ingérer les instructions de requête brutes qui apparaissent dans les échantillons de requêtes. Cette option est désactivée par défaut.
+ +[1]: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-error-severities +[2]: https://learn.microsoft.com/en-us/sql/relational-databases/event-classes/attention-event-class +[3]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +{{% /tab %}} + +{{% tab "Azure DB" %}} + +1. Dans votre base de données Azure SQL Server, créez les sessions Extended Events (XE) suivantes : + +La session XE `datadog_query_completions` capture les requêtes SQL de longue durée (plus d'une seconde) provenant des appels RPC, des lots SQL et des procédures stockées. + +```sql +-- Query completions: RPC, batch, and stored procedure events +IF EXISTS ( + SELECT * FROM sys.database_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON DATABASE; +GO + +CREATE EVENT SESSION datadog_query_completions ON DATABASE -- datadog requires this exact session name +ADD EVENT sqlserver.rpc_completed ( -- capture remote procedure call completions + ACTION ( -- datadog requires these exact actions for rpc_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.sql_batch_completed( -- capture batch completions + ACTION ( -- datadog requires these exact actions for sql_batch_completed + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +), +ADD EVENT sqlserver.module_end( -- capture stored procedure completions + SET collect_statement = (1) + ACTION ( -- datadog requires these exact actions for module_end + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE ( + sql_text <> '' AND + duration > 1000000 -- in microseconds, limit to queries with duration greater than 1 second + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not exceed 1024, values above 1 MB may result in data loss due to SQLServer internals + TRACK_CAUSALITY = ON, -- allows datadog to correlate related events across activity ID + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_completions ON DATABASE STATE = START; +GO +``` + +La session XE datadog_query_errors capture les erreurs SQL de [gravité ≥ 11][1] et les délais d'expiration de requête (également appelés [événements d'attention][2]), permettant à Datadog de signaler les échecs et les délais d'expiration de requête. + +```sql +-- Errors and timeouts: SQL errors and attention events +IF EXISTS ( + SELECT * FROM sys.database_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON DATABASE; +GO +CREATE EVENT SESSION datadog_query_errors ON DATABASE +ADD EVENT sqlserver.error_reported( + ACTION( -- datadog requires these exact actions for error_reported + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) + WHERE severity >= 11 +), +ADD EVENT sqlserver.attention( + ACTION( -- datadog requires these exact actions for attention + sqlserver.sql_text, + sqlserver.database_name, + sqlserver.username, + sqlserver.client_app_name, + sqlserver.client_hostname, + sqlserver.session_id, + sqlserver.request_id + ) +) +ADD TARGET package0.ring_buffer -- do not change, datadog is only configured to read from ring buffer at this time +( + SET MAX_MEMORY = 1024 +) +WITH ( + MAX_MEMORY = 1024 KB, -- do not change, setting this larger than 1 MB may result in data loss due to SQLServer internals + EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, + MAX_DISPATCH_LATENCY = 30 SECONDS, + MEMORY_PARTITION_MODE = PER_NODE, -- improves performance on multi-core systems + STARTUP_STATE = ON +); + +ALTER EVENT SESSION datadog_query_errors ON DATABASE STATE = START; +GO +``` + +2. Dans la configuration du Datadog Agent, activez `collect_xe` dans `sqlserver.d/conf.yaml`. +Consultez l'exemple [conf.yaml.example][3] pour connaître toutes les options de configuration disponibles. + +```yaml + collect_xe: + query_completions: + enabled: true + query_errors: + enabled: true +``` +Pour collecter les instructions de requête avec les valeurs de paramètres, activez `collect_raw_query_statement` dans `sqlserver.d/conf.yaml`. Pour plus d'informations sur la capture des paramètres, consultez [Configuring Query Capture with Parameter Values][1]. + +```yaml + collect_raw_query_statement: + enabled: true +``` + +
Les instructions de requête brutes et les plans d'exécution peuvent contenir des informations sensibles (par exemple, des mots de passe dans le texte de la requête) ou des informations personnellement identifiables. L'activation de cette option permet à Datadog de collecter et d'ingérer les instructions de requête brutes et les plans d'exécution qui apparaissent dans les échantillons de requêtes ou les explain plans. Cette option est désactivée par défaut.
+ +[1]: https://learn.microsoft.com/en-us/sql/relational-databases/errors-events/database-engine-error-severities +[2]: https://learn.microsoft.com/en-us/sql/relational-databases/event-classes/attention-event-class +[3]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example + +{{% /tab %}} + +{{< /tabs >}} + +## Réglage des Extended Events pour votre environnement (facultatif) {#tuning-extended-events-for-your-environment-optional} + +Vous pouvez personnaliser les sessions Extended Events pour mieux répondre à vos besoins spécifiques : + +### Seuil de durée de requête {#query-duration-threshold} +Le seuil de durée de requête par défaut est de `duration > 1000000` (1 seconde). Ajustez cette valeur pour contrôler le nombre de requêtes capturées : + +- **Capturer plus de requêtes** : Abaissez le seuil (par exemple, `duration > 500000` pour 500 ms) +- **Capturer moins de requêtes** : Augmentez le seuil (par exemple, `duration > 5000000` pour 5 secondes) +
Définir des seuils trop bas peut entraîner une collecte excessive d'événements qui affecte les performances du serveur, une perte d'événements due à un dépassement de tampon et des données incomplètes, car Datadog ne collecte que les 1000 événements les plus récents par intervalle de collecte.
+ +### Allocation de mémoire {#memory-allocation} +- La valeur par défaut est `MAX_MEMORY = 1024 KB`. +- Ne dépassez pas 1024 Ko, car des valeurs plus élevées peuvent entraîner une perte de données en raison des [limitations internes de SQL Server][3]. +- Pour les serveurs à haut volume, il est recommandé de maintenir cette valeur à un maximum de 1024 Ko. +- Pour les serveurs à faible trafic, un paramètre de 512 Ko peut suffire. + +### Filtrage d'événements {#event-filtering} + +Pour réduire le volume d'événements, vous pouvez ajouter des filtres à la clause `WHERE`. Exemple : + + ```sql + WHERE ( + sql_text <> '' AND + duration > 1000000 AND + -- Add custom filters here + database_name = 'YourImportantDB' AND -- Only track specific databases + username <> 'datadog' -- Exclude Datadog Agent queries or specific users + ) + ``` + +### Considérations relatives aux performances {#performance-considerations} + +Les Extended Events sont conçus pour être légers, mais ils peuvent entraîner une certaine surcharge. Si vous constatez des problèmes de performance, envisagez les actions suivantes : + +- [Augmentez le seuil de durée de requête](#query-duration-threshold) pour limiter les requêtes capturées. +- [Ajoutez des filtres plus spécifiques](#event-filtering) pour réduire le volume d'événements. +- Désactivez une ou deux sessions pendant les périodes de charge de pointe en exécutant : + +```sql +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_completions' +) + DROP EVENT SESSION datadog_query_completions ON SERVER; +GO +IF EXISTS ( + SELECT * FROM sys.server_event_sessions WHERE name = 'datadog_query_errors' +) + DROP EVENT SESSION datadog_query_errors ON SERVER; +GO +``` + +### Considérations spécifiques à Azure {#azure-specific-considerations} + +Les environnements Azure SQL Database disposent généralement de ressources plus limitées. Pour minimiser l'impact sur les performances : + +- [Utilisez des filtres plus restrictifs](#event-filtering) si vous utilisez un niveau de service inférieur. +- Si vous utilisez des pools élastiques, surveillez l'impact sur les performances pour toutes les bases de données. + +## Pour aller plus loin {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/database_monitoring/setup_sql_server/ +[2]: https://github.com/DataDog/integrations-core/blob/master/sqlserver/datadog_checks/sqlserver/data/conf.yaml.example +[3]: https://techcommunity.microsoft.com/blog/sqlserversupport/you-may-not-see-the-data-you-expect-in-extended-event-ring-buffer-targets8230-/315838 \ No newline at end of file diff --git a/hugo/content/fr/ide_plugins/vscode/code_security.md b/hugo/content/fr/ide_plugins/vscode/code_security.md new file mode 100644 index 00000000000..59840b75541 --- /dev/null +++ b/hugo/content/fr/ide_plugins/vscode/code_security.md @@ -0,0 +1,130 @@ +--- +aliases: +- /fr/developers/ide_plugins/vscode/code_security/ +further_reading: +- link: /security/code_security/ + tag: Documentation + text: En savoir plus sur Code Security +- link: /security/code_security/static_analysis/static_analysis_rules/ + tag: Documentation + text: Règles dʼanalyse statiques +- link: /security/code_security/secret_scanning/ + tag: Documentation + text: En savoir plus sur Secret Scanning +- link: /security/code_security/iac_security/ + tag: Documentation + text: En savoir plus sur IaC Security +title: Code Security +type: documentation +--- +## Présentation {#overview} + +L'extension Datadog pour VS Code et Cursor vous aide à détecter et à corriger les problèmes de sécurité avant que vous ne validiez vos modifications. [Static Code Analysis](#static-code-analysis) détecte les vulnérabilités, les bugs et les problèmes de maintenabilité. [Secret Scanning](#secret-scanning) trouve les identifiants exposés tels que les clés d'API, les jetons et les mots de passe. [Infrastructure as Code (IaC) Scanning](#infrastructure-as-code-iac-scanning) détecte les erreurs de configuration cloud avant que vous ne les déployiez. + +## Static Code Analysis{#static-code-analysis} + +L'extension exécute des règles de [Static Code Analysis][1] sur les fichiers sources de votre espace de travail. Elle signale les vulnérabilités de sécurité, les bugs et les problèmes de maintenabilité avant que vous ne validiez vos modifications. + +Static Code Analysis prend en charge de nombreux langages de programmation. Pour une liste complète, consultez les [Static Code Analysis Rules][2]. Les problèmes sont affichés dans l'éditeur de code source et vous pouvez appliquer directement les correctifs suggérés. + +{{< img src="/ide_plugins/vscode/static_analysis.mp4" alt="Aperçu de Static Analysis" style="width:100%" video=true >}} + +### Get started with Static Code Analysis {#get-started-with-static-code-analysis} + +Lorsque vous ouvrez un fichier source, l'extension recherche [`code-security.datadog.yaml`][3] à la racine de votre dépôt et vous invite à en créer un s'il n'existe pas. + +{{< img src="/ide_plugins/vscode/static-analysis-onboard.png" alt="Bannière d'intégration pour la configuration de Static Code Analysis avec des fichiers Python" style="width:75%;" >}} + +Une fois le fichier de configuration créé, l'analyseur s'exécute automatiquement en arrière-plan lorsque vous ouvrez un fichier. Pour activer Static Code Analysis pour un langage spécifique, exécutez la commande `Datadog: Configure Static Analysis Languages` depuis la palette de commandes (`Shift` + `Cmd/Ctrl` + `P`). + +Pour analyser un dossier ou un espace de travail entier, faites un clic droit sur un dossier dans l'explorateur de fichiers et sélectionnez **Datadog Code Security > Analyze Folder** ou **Analyze Workspace**. + +### Rule editor {#rule-editor} + +Écrivez et testez des [custom Static Code Analysis rules][4] sans quitter votre IDE. Utilisez Rule editor pour concevoir une logique de détection pour les normes internes, les security patterns ou les vérifications de maintenabilité spécifiques à votre codebase. + +Pour ouvrir Rule editor, exécutez la commande `Datadog: New DDSA Rule` depuis la palette de commandes (`Shift` + `Cmd/Ctrl` + `P`), ou faites un clic droit sur un fichier YAML dans l'explorateur de fichiers et sélectionnez **Datadog Code Security > Open in DDSA Rule Editor**. + +{{< img src="/ide_plugins/vscode/static-analysis-rule-editor.png" alt="SAST rule editor dans l'extension Datadog pour VS Code" style="width:100%;" >}} + +Rule editor fournit les panneaux suivants. + +- A **Tree-sitter query editor** pour la correspondance de modèles sur l'arbre de syntaxe abstraite. +- A **JavaScript rule panel** pour exprimer la logique de détection et signaler les violations. +- **Fichiers de test conformes et non conformes** qui s'exécutent par rapport à la règle au fur et à mesure que vous modifiez, avec le nombre de correspondances attendues et réelles affiché en temps réel. +- Une **vue arborescente AST** montrant comment l'analyseur représente votre code de test. + +Importez une règle existante depuis le disque, ou exportez une règle terminée et téléchargez-la sur Datadog. + +## Secret Scanning {#secret-scanning} + +L'extension exécute [Secret Scanning][5] sur les fichiers sources de votre espace de travail. Elle signale les identifiants exposés tels que les clés d'API, les jetons et les mots de passe avant que vous ne validiez vos modifications. Le contenu des fichiers est analysé localement et les résultats sont affichés dans l'éditeur au fur et à mesure que vous tapez. + +{{< img src="/ide_plugins/vscode/secret_scanning.mp4" alt="Aperçu de Secret Scanning" style="width:100%" video=true >}} + +### Get started with Secret Scanning {#get-started-with-secret-scanning} + +Secret Scanning est activé par défaut et s'exécute en arrière-plan chaque fois que vous ouvrez un fichier source. Pour analyser un dossier ou un espace de travail entier, faites un clic droit sur un dossier dans le RUM Session Explorer et sélectionnez **Datadog Code Security > Analyze Folder** ou **Analyze Workspace**. + +{{< img src="/ide_plugins/vscode/secret-scanning-batch-analysis.png" alt="Rapport d'analyse par lots avec une section Secret Scanning listant les résultats par fichier" style="width:100%;" >}} + +Aucune configuration locale n'est requise ; les règles d'analyse sont récupérées depuis Datadog. Tous les fichiers texte sont analysés et les fichiers binaires sont ignorés. + +
Secret Scanning nécessite que vous soyez connecté à Datadog, car les règles de détection sont récupérées depuis votre organisation Datadog.
+ +### Review findings {#review-findings} + +Les secrets détectés sont affichés à trois endroits : + +- **En ligne dans l'éditeur** : Chaque résultat apparaît sous forme de soulignement sur le secret détecté, avec une gravité dérivée de la priorité de la règle. +- **Problems panel** : Tous les résultats sont listés avec la source `Datadog`. +- **File Insights view** : Les résultats sont regroupés avec d'autres problèmes de Code Security. + +{{< img src="/ide_plugins/vscode/secret-scanning-findings.png" alt="Un secret détecté affiché en ligne dans l'éditeur avec un diagnostic au survol, ainsi que le Problems panel et le File Insights view." style="width:100%;" >}} + +### Suppress a finding {#suppress-a-finding} + +Pour supprimer une détection individuelle, utilisez le code action pour le flagged secret afin d'insérer un `no-dd-secrets` commentaire sur la ligne au-dessus. Le commentaire supprime tous les résultats de secrets sur la ligne suivante. + +### Turn Secret Scanning on or off {#turn-secret-scanning-on-or-off} + +Pour basculer Secret Scanning, exécutez la commande `Datadog: Turn on Secret Scanning` ou `Datadog: Turn off Secret Scanning` depuis la palette de commandes (`Shift` + `Cmd/Ctrl` + `P`), ou modifiez le paramètre `datadog.codeSecurity.setup.secretScanning.enabled`. + +## Infrastructure as Code (IaC) Scanning {#infrastructure-as-code-iac-scanning} + +L'extension exécute les règles [Infrastructure as Code (IaC) Security][6] sur les fichiers IaC pris en charge dans votre espace de travail. Elle détecte les erreurs de configuration cloud, telles qu'un chiffrement manquant ou un accès trop permissif. Les fichiers sont analysés localement au fur et à mesure de vos modifications, et les résultats sont affichés en temps réel. + +### Get started with IaC Scanning {#get-started-with-iac-scanning} + +IaC Scanning est activé par défaut et s'exécute automatiquement en arrière-plan chaque fois que vous ouvrez ou modifiez un fichier IaC pris en charge. Aucune configuration de scanner distincte n'est requise. L'extension respecte la configuration et les exclusions IaC dans `code-security.datadog.yaml`. Pour les options de configuration, consultez [Configure IaC Security][7]. Pour les règles disponibles, consultez [IaC Security Rules][8]. + +### Review findings {#review-findings-1} + +Les erreurs de configuration IaC sont affichées à trois endroits : + +- **En ligne dans l'éditeur** : Chaque résultat est mis en évidence sur la ligne concernée. Survolez-le pour afficher la gravité, la description et la règle. +- **Problems panel** : Tous les résultats sont listés avec la source `Datadog`. +- **File Insights view** : Les findings sont regroupés sous **Infrastructure as Code** aux côtés d'autres Code Security issues. + +{{< img src="/ide_plugins/vscode/iac_real_time_analysis.mp4" alt="Plusieurs IaC findings mis en évidence en ligne dans des fichiers Dockerfile et Terraform, avec un diagnostic au survol, une quick fix action pour supprimer un finding avec un commentaire, et les findings correspondants dans le File Insights view et le Problems panel." style="width:100%" video=true >}} + +### Suppress a finding {#suppress-a-finding-1} + +Pour supprimer les IaC findings sur une ligne, utilisez le code action `Datadog: Ignore IaC violations on this line`. L'extension insère un commentaire `dd-iac-scan ignore-line` au-dessus de la ligne concernée en utilisant la syntaxe de commentaire appropriée pour le fichier. + +### Turn IaC Scanning on or off {#turn-iac-scanning-on-or-off} + +Pour basculer IaC Scanning, modifiez le paramètre `datadog.iacScanning.setup.enabled`. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/security/code_security/static_analysis/ +[2]: /fr/security/code_security/static_analysis/static_analysis_rules/ +[3]: /fr/security/code_security/static_analysis/configuration/ +[4]: /fr/security/code_security/static_analysis/custom_rules/ +[5]: /fr/security/code_security/secret_scanning/ +[6]: /fr/security/code_security/iac_security/ +[7]: /fr/security/code_security/iac_security/configuration/ +[8]: /fr/security/code_security/iac_security/iac_rules/ \ No newline at end of file diff --git a/hugo/content/fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md b/hugo/content/fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md new file mode 100644 index 00000000000..566be2630af --- /dev/null +++ b/hugo/content/fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/prompt_templating.md @@ -0,0 +1,187 @@ +--- +aliases: +- /fr/llm_observability/evaluations/custom_llm_as_a_judge_evaluations/prompt_templating/ +description: Référence pour le templating utilisé dans les prompts d'évaluation personnalisés + LLM-as-a-judge — variables, opérateurs de tableau, filtres de span et de trace, + chemins de session et règles de résolution. +further_reading: +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations + tag: Documentation + text: Évaluations personnalisées LLM-as-a-judge +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations/session_level_evaluations + tag: Documentation + text: Évaluations au niveau de la session +- link: /llm_observability/configure/evaluations/llm_as_a_judge_evaluations/trace_level_evaluations + tag: Documentation + text: Évaluations au niveau de la trace +title: Templating de prompt +--- +Les prompts personnalisés LLM-as-a-judge injectent des données de session, de trace ou de span dans le message {{< ui >}}User{{< /ui >}} en enveloppant un chemin de champ dans `{{ ... }}`. Le System Prompt contient les instructions statiques pour le juge LLM et ne résout pas les espaces réservés. La même syntaxe fonctionne à la fois dans le volet de test et au moment de l'évaluation. Les chemins disponibles dépendent du périmètre de l'évaluation : session, trace ou span. + +## En un coup d'œil {#at-a-glance} + +| Modèle | Description | +|---|---| +| `{{traces}}` | Every trace in the session as JSON | +| `{{traces[0].spans[0].meta.input.value}}` | First span of the first trace | +| `{{traces[*].spans[*].name}}` | Fan-out across traces and spans | +| `{{traces[*].spans[meta.span.kind:llm].meta.output.value}}` | Filter spans by attribute across a session | +| `{{spans}}` | Every span in the trace as JSON (trace scope) | +| `{{spans[0].name}}` | Pick one span from a trace (trace scope) | +| `{{spans[name:my-span].meta.input.value}}` | Filter spans by attribute (trace scope) | +| `{{name}}` | Direct field (span scope) | +| `{{meta.input.value}}` | Dot notation for nested fields (span scope) | +| `{{meta.input.messages[0].content}}` | Array index (0-based) (span scope) | +| `{{meta.input.messages[1,3].content}}` | Inclusive array range (span scope) | +| `{{meta.input.messages[*].content}}` | Array wildcard (fan-out) (span scope) | +| `{{meta.input.messages.content}}` | Implicit fan-out (same as `[*]`) (span scope) | +| `{{span_input}}`, `{{span_output}}` | Aliases for span input and output fields (span scope) | +| `{{*}}` | Charge utile entière au format JSON (périmètre de session, de trace ou de span) | + +La liste déroulante de saisie semi-automatique s'ouvre après que vous avez tapé `{{` et répertorie les champs disponibles sur l'échantillon sélectionné. + +## Syntaxe à périmètre de session {#session-scope-syntax} + +Les évaluations à périmètre de session exposent chaque trace dans la [session utilisateur][1] sous le tableau `traces`. Chaque trace inclut son propre tableau `spans`, vous pouvez donc lire à travers les traces et les spans dans une seule invite. Utilisez `{{traces[...]}}` paths (and nested `{{traces[...].spans[...]}}` paths) to build session-level judges. The `{{span_input}}` and `Les alias {{span_output}}` ne sont pas disponibles dans le périmètre de session. + +Les évaluations au niveau de la session nécessitent que les spans soient marqués avec un `session_id`. Consultez [Suivi des sessions utilisateur][1] pour instrumenter votre application, et [Évaluations au niveau de la session][2] pour la configuration, des exemples d'invites et des conseils sur le moment de choisir le périmètre de session. + +### Référencez la session entière {#reference-the-whole-session} + +``` +{{traces}} # JSON of every trace in the session (each trace includes its spans) +{{*}} # Entire session payload as JSON, including top-level metadata +``` + +### Choisir une trace ou un span par index {#pick-a-trace-or-span-by-index} + +``` +{{traces[0].spans[0].meta.input.value}} # First span of the first trace +{{traces[*].spans[*].name}} # Newline-joined names of every span in the session +{{traces[1].spans}} # JSON of every span in the second trace +``` + +### Filtrer les spans par attribut {#filter-spans-by-attribute} + +`[field.path:value]` sur `spans` conserve uniquement les spans dont le champ à `field.path` est égal à `value`. Combinez avec des chemins plus profonds pour extraire des entrées ou des sorties sur toute la session. Les filtres reviennent à une chaîne vide lorsque rien ne correspond. + +``` +{{traces[0].spans[name:my-span].meta.input.value}} +{{traces[*].spans[meta.span.kind:llm].meta.output.value}} +{{traces[*].spans[meta.span.kind:tool].meta.input.parameters}} +``` + +### Déploiement sur les traces {#fan-out-across-traces} + +Utilisez `[*]` sur `traces` ou `spans` pour déployer : les valeurs de chaque élément correspondant sont jointes avec des sauts de ligne (`\n`), ou sérialisées au format JSON lorsque les valeurs résolues sont des objets. + +``` +{{traces[*].spans[meta.span.kind:llm].meta.input.messages[*].content}} +{{traces[*].spans[meta.span.kind:llm].meta.output.messages[*].content}} +``` + +## Syntaxe de périmètre de trace {#trace-scope-syntax} + +Les évaluations de périmètre de trace exposent chaque span dans la trace sous le tableau `spans`. Utilisez `{{spans...}}` paths to read across spans. The `{{span_input}}` and `Les alias {{span_output}}` ne sont pas disponibles dans le périmètre de trace. Consultez [Trace-Level Evaluations][3] pour la configuration, des exemples d'invites et des conseils sur le moment où choisir le périmètre de trace. + +### Référencez la trace entière {#reference-the-whole-trace} + +``` +{{spans}} # JSON of every span in the trace +{{*}} # Entire trace payload as JSON, including top-level metadata +``` + +### Choisir un span par index {#pick-a-span-by-index} + +``` +{{spans[0].meta.input.value}} # First span +{{spans[*].name}} # Newline-joined names of every span +``` + +### Filtrer les spans par attribut {#filter-spans-by-attribute-1} + +`[field.path:value]` conserve uniquement les spans dont le champ à `field.path` est égal à `value`. Combinez avec des chemins plus profonds pour extraire les entrées ou les sorties des spans correspondants. Le filtre revient à une chaîne vide si aucun span ne correspond. + +``` +{{spans[name:my-span].meta.input.value}} +{{spans[meta.span.kind:llm].meta.output.value}} +{{spans[meta.span.kind:tool].meta.input.parameters}} +``` + +## Syntaxe de périmètre de span {#span-scope-syntax} + +Les évaluations de périmètre de span exposent un seul span par évaluation. Référencez les champs par leur chemin JSON sur le span. + +### Alias intégrés {#built-in-aliases} + +| Alias | Résout en | +|---|---| +| `{{span_input}}` | `meta.input.messages[*].content` for LLM spans, `meta.input.value` otherwise | +| `{{span_output}}` | `meta.output.messages[*].content` for LLM spans, `meta.output.value` sinon | + +Les alias s'adaptent au type de span évalué, vous n'avez donc pas à faire de distinction quant à savoir si le span correspond à un appel LLM ou à une étape d'agent. + +### Chemins de champs directs {#direct-field-paths} + +Référencez n'importe quel champ de span par son chemin JSON. + +``` +{{name}} +{{meta.input.value}} +{{meta.output.value}} +{{metrics.input_tokens}} +``` + +### Accès au tableau {#array-access} + +Utilisez la notation entre crochets pour indexer, découper ou ventiler les champs de tableau. + +``` +{{meta.input.messages[0].content}} # First message only +{{meta.input.messages[*].content}} # All messages, joined with newlines +{{meta.input.messages[0,2].content}} # Inclusive range; out-of-bounds ends are clamped +{{meta.input.messages.content}} # Implicit fan-out, equivalent to [*] +``` + +## Règles de résolution {#resolution-rules} + +| Résultat | Comportement | +|---|---| +| Chemin manquant | Résout en une chaîne vide | +| Index hors limites | Résout en une chaîne vide | +| Chaîne unique | Insérée telle quelle | +| Tableau de chaînes | Jointes avec des retours à la ligne (`\n`) | +| Objet ou tableau de valeurs non-chaînes | Sérialisé en JSON compact | +| Tableau mixte (chaînes + objets) | Sérialisé en JSON compact | +| Tableau vide unique | Résout en une chaîne vide | + +Par exemple, étant donné un span où `meta.input.messages` est : + +```json +[ + { "role": "user", "content": "hello" }, + { "role": "user", "content": "help please" } +] +``` + +| Modèle | Valeur résolue | +|---|---| +| `{{meta.input.messages[0].content}}` | `bonjour` | +| `{{meta.input.messages[*].content}}` | `bonjour`
`aidez-moi s'il vous plaît` | +| `{{meta.input.messages}}` | `[{\"role\":\"user\",\"content\":\"hello\"},{\"role\":\"user\",\"content\":\"help please\"}]` | + +## Conseils {#tips} + +- Tapez `{{` dans l'éditeur d'invites pour ouvrir le menu déroulant de saisie semi-automatique. La liste s'adapte au périmètre (session, trace ou span) et à l'échantillon sélectionné. +- Choisissez un échantillon dans le panneau de droite ({{< ui >}}Sample Session{{< /ui >}} pour le périmètre de session, {{< ui >}}Spans in Selected Trace{{< /ui >}} pour le périmètre de trace ou {{< ui >}}Filtered Spans{{< /ui >}} pour le périmètre de span), puis cliquez sur {{< ui >}}Test Evaluation{{< /ui >}} pour prévisualiser la façon dont chaque espace réservé se résout sur des données réelles avant d'enregistrer. +- Utilisez le menu à trois points dans la vue JSON d'un échantillon et sélectionnez {{< ui >}}Add variable to message{{< /ui >}} pour insérer un chemin de champ dans l'invite sans avoir à le taper. +- Passez `{{*}}` lorsque vous souhaitez que le juge LLM voie la charge utile complète — utile pour les invites en texte libre qui décident elles-mêmes quels champs sont importants. +- Utilisez `{{traces}}` or targeted `{{traces[...].spans[...]}}` paths for session judges when you need cross-turn context; use `{{spans}}` lorsqu'une seule trace suffit. Consultez [Évaluations au niveau de la session][2] pour obtenir des conseils sur le périmètre et des exemples d'invites. + +## Pour aller plus loin {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/llm_observability/instrument/sdk/#tracking-user-sessions +[2]: /fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/session_level_evaluations +[3]: /fr/llm_observability/configure/evaluations/llm_as_a_judge_evaluations/trace_level_evaluations \ No newline at end of file diff --git a/hugo/content/fr/observability_pipelines/packs/abnormal_ai_threats.md b/hugo/content/fr/observability_pipelines/packs/abnormal_ai_threats.md new file mode 100644 index 00000000000..756c351ac5a --- /dev/null +++ b/hugo/content/fr/observability_pipelines/packs/abnormal_ai_threats.md @@ -0,0 +1,15 @@ +--- +description: En savoir plus sur le pack Abnormal.ai - Threats. +title: Abnormal.ai - Threats +--- +## Présentation {#overview} + +{{< img src="observability_pipelines/packs/abnormal_ai_threats.png" alt="Le pack Abnormal.ai - Threats" style="width:25%;" >}} + +Ce pack signale les menaces par e-mail à haut risque non corrigées telles que la compromission d'e-mail professionnel (BEC), l'extorsion et le phishing d'identifiants ciblant les VIP. + +Ce que fait ce pack : + +- Signale les menaces non corrigées +- Signale les attaques ciblant les VIP +- Supprime le spam traité \ No newline at end of file diff --git a/hugo/content/fr/observability_pipelines/sources/logstash.md b/hugo/content/fr/observability_pipelines/sources/logstash.md new file mode 100644 index 00000000000..f71e8448950 --- /dev/null +++ b/hugo/content/fr/observability_pipelines/sources/logstash.md @@ -0,0 +1,69 @@ +--- +description: Apprenez à collecter des journaux à partir d'un agent Logstash en utilisant + l'Observability Pipelines Worker. +disable_toc: false +products: +- icon: logs + name: Logs + url: /observability_pipelines/configuration/?tab=logs#pipeline-types +title: Logstash Source +--- +{{< product-availability >}} + +## Présentation {#overview} + +Utilisez la source Logstash d'Observability Pipelines pour recevoir des journaux de votre agent Logstash. + +Vous pouvez également utiliser la source Logstash pour [envoyer des journaux à Observability Pipelines en utilisant Filebeat][2]. + +## Prérequis {#prerequisites} + +{{% observability_pipelines/prerequisites/logstash%}} + +## Configuration {#setup} + +
Pour la gestion des secrets : saisissez uniquement l'identifiant de l'adresse Logstash et, le cas échéant, la phrase secrète de la clé TLS. Ne saisissez pas les valeurs réelles.
+ +Configurez cette source lorsque vous [configurez un pipeline][1]. Vous pouvez configurer un pipeline dans l'[interface utilisateur][4], en utilisant l'[API][5] ou avec [Terraform][6]. Les instructions de cette section concernent la configuration de la source dans l'UI. + +Après avoir sélectionné la source Logstash dans l'interface utilisateur du pipeline, saisissez l'identifiant de votre adresse Logstash. Si vous le laissez vide, le [default](#secret-defaults) est utilisé. + +{{% observability_pipelines/secrets_env_var_note %}} + +### Paramètres TLS optionnels {#optional-tls-settings} + +{{% observability_pipelines/tls_settings %}} + +{{% observability_pipelines/tls_settings_mtls %}} + +## Valeurs par défaut des secrets {#secret-defaults} + +{{% observability_pipelines/set_secrets_intro %}} + +{{< tabs >}} +{{% tab "Gestion des secrets" %}} + +- Identifiant de l'adresse Logstash : + - Référence l'adresse sur laquelle l'Observability Pipelines Worker écoute les messages de logs entrants. + - L'identifiant par défaut est `SOURCE_LOGSTASH_ADDRESS`. +- Identifiant de la phrase secrète TLS Logstash (lorsque TLS est activé) : + - L'identifiant par défaut est `SOURCE_LOGSTASH_KEY_PASS`. + +{{% /tab %}} + +{{% tab "Variables d'environnement" %}} + +{{% observability_pipelines/configure_existing_pipelines/source_env_vars/logstash %}} + +{{% /tab %}} +{{< /tabs >}} + +## Envoyez des journaux à l'Observability Pipelines Worker via Logstash {#send-logs-to-the-observability-pipelines-worker-over-logstash} + +{{% observability_pipelines/log_source_configuration/logstash %}} + +[1]: /fr/observability_pipelines/configuration/set_up_pipelines/ +[2]: /fr/observability_pipelines/sources/filebeat/ +[4]: https://app.datadoghq.com/observability-pipelines +[5]: /fr/api/latest/observability-pipelines/ +[6]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/resources/observability_pipeline \ No newline at end of file diff --git a/hugo/content/fr/real_user_monitoring/rum_without_limits/retention_filters.md b/hugo/content/fr/real_user_monitoring/rum_without_limits/retention_filters.md new file mode 100644 index 00000000000..ffc613fed47 --- /dev/null +++ b/hugo/content/fr/real_user_monitoring/rum_without_limits/retention_filters.md @@ -0,0 +1,202 @@ +--- +description: Découvrez comment fonctionnent les filtres de rétention dans RUM without + Limits. +further_reading: +- link: /real_user_monitoring/guide/retention_filter_best_practices/ + tag: Guide + text: Bonnes pratiques pour les retention filter (filtre de rétention) +- link: /real_user_monitoring/rum_without_limits/ + tag: Documentation + text: RUM without Limits +- link: /real_user_monitoring/rum_without_limits/metrics + tag: Documentation + text: Analysez les performances avec des métriques +- link: /real_user_monitoring/rum_without_limits/retention_quotas + tag: Documentation + text: Contrôlez les coûts avec des quotas de rétention +- link: https://www.datadoghq.com/blog/rum-apm-retention-filters + tag: Blog + text: Unifiez et corrélez les données frontend et backend avec des filtres de rétention +- link: https://learn.datadoghq.com/courses/rum-retention-filters + tag: Centre d'apprentissage + text: 'Laboratoire interactif : filtres de rétention RUM' +title: Conserver les données avec des retention filter (filtre de rétention) +--- +{{< learning-center-callout header="Essayez les filtres de rétention RUM dans le centre d'apprentissage" btn_title="Inscrivez-vous maintenant" btn_url="https://learn.datadoghq.com/courses/rum-retention-filters" hide_image="false" >}} + Découvrez comment utiliser les filtres de rétention RUM pour contrôler les données de session stockées et optimiser votre budget d'observabilité. +{{< /learning-center-callout >}} + +## Présentation {#overview} + +Les filtres de rétention sont un ensemble de requêtes, similaires à celles utilisées dans le RUM Session Explorer, qui sont exécutées sur les événements RUM (sessions, vues, actions, ressources, etc.) au moment de leur ingestion. Ces filtres déterminent si une session est conservée pendant la période de rétention RUM standard de 30 jours ou si elle est supprimée. + +Le **taux de rétention** spécifie le pourcentage de sessions correspondantes que vous souhaitez conserver, ce qui permet un meilleur contrôle des coûts. Bien que les filtres soient comparés à des événements individuels, tous les événements de la session sous-jacente sont conservés lorsqu'une décision d'échantillonnage est prise, garantissant ainsi une visibilité de bout en bout sur les sessions utilisateur. + +## Fonctionnement {#how-it-works} + +Une session est stockée dès qu'un filtre de rétention correspond à l'un de ses événements constitutifs sur la base de la requête prédéfinie, et elle est retenue en fonction du taux de rétention configuré + +{{< img src="real_user_monitoring/rum_without_limits/rum-without-limits-how-retention-filters-work-2.png" alt="Diagramme montrant le flux logique des filtres de rétention et leur impact sur le nombre de sessions finalement conservées." style="width:80%" >}} + +Le flux logique des filtres de rétention est le suivant : + +- Tous les événements RUM sont évalués par rapport à chaque filtre en séquence, en commençant par le premier reçu. +- Lorsqu'un événement `A` correspond à un filtre, une décision est prise sur la base du taux de rétention pour soit retenir l'intégralité de la session, soit attendre que les événements futurs soient évalués Dans les deux cas, l'événement `A` n'est pas évalué davantage par rapport aux filtres de rétention suivants. C'est pourquoi **l'ordre des filtres de rétention est important**. +- Les sessions conservées sont enregistrées et accessibles dans le Session Explorer et sur d'autres pages RUM. Les nouveaux événements provenant de cette session ne passent pas par la liste des filtres de rétention, mais sont automatiquement conservés pour garantir une visibilité complète. + +**Remarques** : + +- Si un événement ne correspond à aucun filtre, ou s'il correspond à un filtre mais que la décision est prise de ne pas conserver la session en fonction du taux de rétention configuré, les événements futurs de la même session continueront d'être évalués. Par conséquent, la session peut finir par être conservée. +- Soyez prudent lors de la définition de filtres sur des attributs d'événement qui se mettent à jour au fil du temps. Par exemple, un filtre conservant les sessions avec moins de deux erreurs pourrait retenir par erreur des sessions, car le nombre d'erreurs se met à jour en temps réel et toutes les sessions commencent à zéro Utilisez soit des conditions « supérieur ou égal à » (≥) pour les champs qui se mettent à jour, tels que `@session.error.count >= 2`, soit assurez-vous que les objets Session et View qui sont mutables sont complets avant de les évaluer par rapport aux filtres de rétention, en ajoutant `@session.is_active: false` ou `@view.is_active: false`. +- Nos SDK regroupent et compressent les événements avant de les envoyer à Datadog, et les échecs de téléchargement sont replacés à la fin de la file d'attente sur l'appareil. Par conséquent, il peut arriver que l'événement `B` soit évalué avant l'événement `A`, mais tous les événements sont finalement évalués par rapport à la liste des filtres de rétention afin d'éviter les lacunes. + +## Fonctionnement des filtres de rétention avec les replays {#how-retention-filters-work-with-replays} + +Vous pouvez gérer l'échantillonnage des sessions avec les replays en utilisant des filtres de rétention. Chaque fois qu'une session avec replays est facturée, les événements de session et l'enregistrement vidéo sont conservés et facturés. Cela signifie que si vous collectez 100 % des sessions et 100 % des replays à partir des SDK, chaque fois qu'un filtre de rétention conserve une session, Datadog conserve et facture à la fois la session et le replay. + +**Remarque** : bien que les SDK mobiles de Datadog fournissent également des API pour démarrer et arrêter l'enregistrement de manière conditionnelle (au lieu de s'appuyer sur un taux d'échantillonnage fixe), seuls les replays collectés de force par le SDK Browser sont conservés par défaut + +## Filtres de rétention permanents {#permanent-retention-filters} + +Les filtres de rétention permanents sont des filtres de rétention prédéfinis qui ne peuvent pas être modifiés, désactivés ou supprimés. Ils sont placés en haut de votre liste de filtres de rétention. + +{{< img src="real_user_monitoring/rum_without_limits/permanent-retention-filters.png" alt="Les trois filtres de rétention permanents affichés en haut de la liste des filtres de rétention." style="width:100%" >}} + +Il existe trois filtres de rétention permanents : + +- {{< ui >}}RUM-APM Flat Sampling{{< /ui >}} : conserve 1 % des sessions avec des traces distribuées ingérées (et indexe leurs traces sur l'APM). Ces sessions (et leurs traces) **ne sont pas soumises à la facturation RUM (ou à la facturation APM)**. +- {{< ui >}}Synthetics Sessions{{< /ui >}} : conserve toutes les sessions générées par [Synthetic Monitoring][1]. Ces sessions sont facturées dans le cadre de Synthetic Monitoring et **ne sont pas soumises à la facturation RUM**. +- {{< ui >}}Sessions with forced replays{{< /ui >}} : conserve toutes les sessions pour lesquelles une relecture a été collectée de force via le mécanisme de [collecte forcée][2]. + +
Le filtre de rétention permanent RUM-APM Flat Sampling ne s'applique qu'avec les SDK suivants :
- Browser 6.5.0+
- Android 3.0.0+
- iOS 3.3.0+
- React Native 3.0.0+
- Flutter 3.0.0+
+ +## Création d'un filtre de rétention {#creating-a-retention-filter} + +Pour créer un filtre de rétention : + +1. Accédez à [{{< ui >}}Digital Experience{{< /ui >}} > {{< ui >}}Manage Applications{{< /ui >}}][3]. +1. Créez une application RUM ou cliquez sur une application existante. +1. Sous Product Settings, accédez à la page {{< ui >}}Retention Filters{{< /ui >}}. +1. Cliquez sur le bouton {{< ui >}}+ Add Retention Filter{{< /ui >}}. +1. Donnez un nom descriptif au filtre de rétention. +1. Sélectionnez un type d'événement dans la liste déroulante et saisissez une requête. Toute requête pouvant être rédigée dans le [RUM Explorer][4] fonctionne avec les filtres de rétention. +1. Optionnellement, définissez un taux de rétention pour les sessions qui correspondent à la requête de rétention. Vous pouvez cliquer sur {{< ui >}}Generate Estimate{{< /ui >}} pour vous aider à définir ce taux. + +Le nouveau filtre est ajouté en bas de la liste des filtres de rétention. Il faut quelques secondes à Datadog pour propager un nouveau filtre et commencer à prendre des décisions d'échantillonnage. + +## Modification des filtres {#modifying-filters} + +{{< img src="real_user_monitoring/rum_without_limits/modifying-filters.png" alt="Passez la souris sur un filtre de rétention pour le modifier." style="width:100%" >}} + +### Modification d'un filtre {#edit-a-filter} + +Pour modifier un filtre existant : + +1. Passez la souris sur le filtre et cliquez sur l'icône {{< ui >}}Edit{{< /ui >}}. +1. Cliquez sur {{< ui >}}Save Changes{{< /ui >}}. + +### Duplication d'un filtre {#duplicate-a-filter} + +Pour dupliquer un filtre : + +1. Passez la souris sur le filtre et cliquez sur l'icône {{< ui >}}Duplicate{{< /ui >}}. +1. Apportez les modifications souhaitées au filtre, puis cliquez sur {{< ui >}}Save Changes{{< /ui >}}. + +### Suppression d'un filtre {#delete-a-filter} + +Pour supprimer un filtre de rétention : + +1. Passez la souris sur le filtre et cliquez sur l'icône {{< ui >}}Delete{{< /ui >}}. +1. Cliquez sur {{< ui >}}Confirm{{< /ui >}}. + +### Désactivation d'un filtre {#disable-a-filter} + +Les filtres désactivés ignorent simplement les événements et ne prennent aucune décision d'échantillonnage. Les événements circulant dans la liste ignoreront les filtres désactivés. + +Utilisez le bouton bascule à droite du filtre pour le désactiver ou l'activer. + +### Réorganisation des filtres {#reorder-filters} + +Faites glisser et déposez les filtres pour les réorganiser à leur nouvelle position. + +## Exclusion des sessions utilisant des filtres de rétention {#excluding-sessions-using-retention-filters} + +RUM without Limits utilise des filtres de rétention pour spécifier quelles sessions conserver, plutôt que lesquelles exclure. Vous ne pouvez pas définir un pourcentage de rétention à 0 % (la valeur par défaut est 1 %). De plus, définir des pourcentages de rétention faibles n'est pas une stratégie d'exclusion efficace car les sessions peuvent toujours être conservées par d'autres filtres dans votre configuration. + +Pour vous assurer que les sessions provenant d'un environnement, d'une version d'application, d'un type d'appareil ou d'autres critères particuliers ne sont pas conservées, ajoutez explicitement des exclusions **dans la requête de TOUS VOS FILTRES**. Exemple : + +- L'ajout de `-version:(1* OR 2*)` à tous les filtres de rétention garantit que vous ne conservez jamais d'événements provenant des anciennes versions 1 et 2 de votre application. +- L'ajout de `-@device.type:Bot` à tous les filtres de rétention exclut les robots des moteurs de recherche et autres bots auto-déclarés. +- L'ajout de `-@geo.country:"South Korea"` à tous les filtres de rétention exclut toutes les sessions provenant de Corée du Sud. + +Par exemple, pour exclure les sessions provenant de Corée du Sud tout en conservant toutes les autres sessions, créez un filtre avec la requête `-@geo.country:"South Korea"` et définissez le taux de rétention sur 100 %. + +**Remarque** : Il n'existe aucun moyen d'empêcher qu'un événement spécifique soit conservé. Vous pouvez utiliser des requêtes négatives (par exemple, en ajoutant `-@error.message:"Script error."` à un filtre de rétention ciblant les erreurs RUM) pour minimiser le volume d'événements indésirables, mais d'autres filtres de rétention peuvent toujours prendre une décision de rétention positive concernant une session contenant l'événement que vous avez tenté d'exclure. + +## Plafonnement de la rétention avec des quotas {#capping-retention-with-quotas} + +Pour plafonner le nombre total de sessions conservées par jour sur l'ensemble de vos filtres de rétention, consultez [Contrôler les coûts avec des quotas de rétention][9]. + +## Filtres de rétention inter-produits {#cross-product-retention-filters} + +Les filtres de rétention inter-produits vous permettent d'optimiser la corrélation entre différents produits afin de conserver une télémétrie plus riche. Lors de la configuration d'un filtre de rétention RUM, vous pouvez activer un filtre de rétention inter-produits pour les traces APM. + +{{< img src="real_user_monitoring/rum_without_limits/cross-product-retention-filters-overview.png" alt="Filtres de rétention RUM avec filtres de rétention inter-produits activés pour les traces APM." style="width:100%" >}} + +Le {{< ui >}}APM traces filter{{< /ui >}} indexe les traces APM pour le pourcentage spécifié de sessions conservées par le filtre de rétention RUM parent qui disposent de traces disponibles. + +**Remarque** : La disponibilité des traces APM dépend de votre **configuration du SDK d'échantillonnage de traces** (découvrez comment corréler RUM avec les traces APM) + +
Le filtre de traces APM est uniquement compatible avec les versions suivantes des SDK :
- Browser 6.5.0+
- Android 3.0.0+
- iOS 3.3.0+
- React Native 3.0.0+
- Flutter 3.0.0+
+ +
La configuration de filtres de rétention inter-produits peut augmenter les volumes indexés APM.
+ +Pour **trouver des sessions avec des traces APM indexées** dans le RUM Explorer, effectuez la requête `@session.has_indexed_apm_traces:true`. + +### Exemple {#example} + +Considérez une configuration où vous définissez un filtre de rétention RUM unique configuré comme suit : + +{{< img src="real_user_monitoring/rum_without_limits/cross-product-retention-filters-apm-only.png" alt="Un filtre de rétention RUM ciblant les erreurs avec une rétention de 60 %, avec un filtre de rétention inter-produits réglé à 25 % pour les traces APM." style="width:60%" >}} + +Si vous avez configuré le SDK pour échantillonner 40 % des traces, le résultat est le suivant : + +- 40 % des sessions RUM ingérées ont leurs traces ingérées sur l'APM. +- 60 % des sessions RUM ingérées contenant au moins une erreur sont conservées. +- 25 % x 40 % = 10 % de ces sessions conservées ont leurs traces APM indexées. + +
Les filtres de rétention inter-produits s'appliquent uniquement aux sessions conservées par le filtre de rétention RUM correspondant. Cela signifie que l'ordre des filtres est important tant pour la rétention RUM que pour les filtres de rétention inter-produits.

+ +Pour plus d'informations, consultez Comment cela fonctionne.
+ +### Filtres de rétention inter-produits sur les filtres permanents {#cross-product-retention-filters-on-permanent-filters} + +Les filtres de rétention inter-produits sont également disponibles sur les Filtres de rétention permanents. Le filtre de traces APM est **uniquement modifiable sur les filtres de Synthetic Monitoring Sessions et sur ceux de Sessions with forced replays**. + +
Les traces APM indexées via un filtre de rétention inter-produits sur les filtres permanents Synthetics ou Forced Replay sont soumises à la facturation APM.
+ +## Bonnes pratiques {#best-practices} + +Consultez [Bonnes pratiques pour les filtres de rétention][5]. + +## API {#api} + +Les filtres de rétention et les filtres de rétention inter-produits peuvent être gérés via des [API][6] ou les [modules Terraform][7] dédiés de Datadog. + +## Étapes suivantes {#next-steps} + +Analysez les performances avec des [métriques][8]. + +## Lectures complémentaires {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/synthetics/ +[2]: /fr/session_replay/setup_and_configuration/?platform=browser&tab=npm#start-or-stop-the-recording-manually +[3]: https://app.datadoghq.com/rum/list +[4]: /fr/real_user_monitoring/explorer/ +[5]: /fr/real_user_monitoring/guide/retention_filter_best_practices +[6]: /fr/api/latest/rum-retention-filters/ +[7]: https://registry.terraform.io/providers/datadog/datadog/latest/docs/data-sources/rum_retention_filters +[8]: /fr/real_user_monitoring/rum_without_limits/metrics +[9]: /fr/real_user_monitoring/rum_without_limits/retention_quotas \ No newline at end of file diff --git a/hugo/content/fr/security/workload_protection/setup/docker.md b/hugo/content/fr/security/workload_protection/setup/docker.md new file mode 100644 index 00000000000..3a439a5030e --- /dev/null +++ b/hugo/content/fr/security/workload_protection/setup/docker.md @@ -0,0 +1,50 @@ +--- +aliases: +- /fr/security/workload_protection/setup/agent/docker +description: Activez Workload Protection sur Docker avec Datadog Agent. +disable_toc: false +title: Configuration de Workload Protection sur Docker +--- +Utilisez les instructions suivantes pour activer Workload Protection. + +{{< partial name="security-platform/WP-billing-note.html" >}} + +## Prérequis {#prerequisites} + +- Datadog Agent version `7.46` ou ultérieure. + +## Installation {#installation} + +La commande suivante démarre Runtime Security Agent et `system-probe` dans un environnement Docker : + +{{< code-block lang="shell" filename="docker-runtime-security.sh" >}} + +docker run -d --name dd-agent \ + --cgroupns host \ + --pid host \ + --security-opt apparmor:unconfined \ + --cap-add SYS_ADMIN \ + --cap-add SYS_RESOURCE \ + --cap-add SYS_PTRACE \ + --cap-add NET_ADMIN \ + --cap-add NET_BROADCAST \ + --cap-add NET_RAW \ + --cap-add IPC_LOCK \ + --cap-add CHOWN \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v /proc/:/host/proc/:ro \ + -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ + -v /etc/passwd:/etc/passwd:ro \ + -v /etc/group:/etc/group:ro \ + -v /:/host/root:ro \ + -v /sys/kernel/debug:/sys/kernel/debug \ + -v /etc/os-release:/etc/os-release \ + -e DD_COMPLIANCE_CONFIG_ENABLED=true \ + -e DD_COMPLIANCE_CONFIG_HOST_BENCHMARKS_ENABLED=true \ + -e DD_RUNTIME_SECURITY_CONFIG_ENABLED=true \ + -e DD_RUNTIME_SECURITY_CONFIG_REMOTE_CONFIGURATION_ENABLED=true \ + -e HOST_ROOT=/host/root \ + -e DD_API_KEY= \ + registry.datadoghq.com/agent:7 + +{{< /code-block >}} \ No newline at end of file diff --git a/hugo/content/fr/security/workload_protection/troubleshooting/threats.md b/hugo/content/fr/security/workload_protection/troubleshooting/threats.md new file mode 100644 index 00000000000..dc00e8e0e39 --- /dev/null +++ b/hugo/content/fr/security/workload_protection/troubleshooting/threats.md @@ -0,0 +1,240 @@ +--- +description: Dépannez Workload Protection, y compris les flares d'Agent, les auto-tests + et la compatibilité des plugins réseau. +title: Dépannage de Workload Protection +--- +Si vous rencontrez des problèmes avec Workload Protection, utilisez les directives de dépannage suivantes. Si vous avez besoin d'une assistance supplémentaire, contactez [Datadog support][1]. + +## Flare de Security Agent {#security-agent-flare} + +
Depuis l'Agent 7.77, le security-agent Le composant runtime de Workload Protection est obsolète et n'est plus requis. Le composant autonome security-agent flare la commande ne fonctionne pas lorsque le processus de Security Agent n'est pas en cours d'exécution. Utilisez la commande du core Agent flare à la place.
+ +Semblable au [Agent flare][3], vous pouvez envoyer les informations de dépannage nécessaires à l'équipe de Datadog support avec une seule commande flare. + +Le flare demande une confirmation avant le téléchargement, vous pouvez donc examiner le contenu avant que Security Agent ne l'envoie. + +Dans les commandes ci-dessous, remplacez `` par votre ID de cas de support Datadog si vous en avez un, puis saisissez l'adresse e-mail qui y est associée. + +Si vous n'avez pas d'ID de cas, saisissez l'adresse e-mail que vous utilisez pour vous connecter à Datadog afin d'ouvrir un cas de support. + +| Plateforme | Commande | +| -------- | ------- | +| Docker | `docker exec -it datadog-agent security-agent flare ` | +| Kubernetes | `kubectl exec -it -c security-agent -- security-agent flare ` | +| Host | `sudo /opt/datadog-agent/embedded/bin/security-agent flare ` | + +## Self-tests de l'Agent {#agent-self-tests} + +Pour confirmer que Workload Protection peut détecter les événements système, déclenchez manuellement les self-tests en exécutant la commande suivante : + +| Plateforme | Commande | +| -------- | ------- | +| Docker | `docker exec -it datadog-agent system-probe runtime self-test` | +| Kubernetes | `kubectl exec -it -c system-probe -- system-probe runtime self-test` | +| Host | `sudo /opt/datadog-agent/embedded/bin/system-probe runtime self-test` | + +La procédure de self-test crée certains fichiers temporaires et des règles pour les surveiller, puis déclenche ces règles pour confirmer que les événements sont propagés correctement. + +La réponse suivante apparaît lorsque les règles sont propagées. + +``` +Runtime self test: OK +``` + +Les événements apparaissent dans le {{< ui >}}Events Explorer{{< /ui >}}. + +## Compatibilité avec les plugins réseau Kubernetes personnalisés {#compatibility-with-custom-kubernetes-network-plugins} + +Les détections basées sur le réseau de Workload Protection reposent sur le sous-système de contrôle du trafic du noyau Linux. Ce sous-système est connu pour introduire des conditions de concurrence si plusieurs fournisseurs tentent d'insérer, de remplacer ou de supprimer des filtres sur le qdisc d'entrée « clsact ». Utilisez la liste de contrôle suivante pour confirmer que Workload Protection est configuré correctement : + +- Vérifiez si votre fournisseur utilise des classificateurs de contrôle du trafic eBPF. S'il ne les utilise pas, vous pouvez ignorer ce paragraphe. +- Vérifiez si votre fournisseur renvoie TC_ACT_OK ou TC_ACT_UNSPEC après avoir accordé l'accès à un paquet réseau. S'il renvoie TC_ACT_UNSPEC, vous pouvez ignorer ce paragraphe. +- Vérifiez la priorité que votre fournisseur attribue à ses classificateurs eBPF : + - S'il utilise la priorité 1, les détections réseau de Workload Protection ne fonctionnent pas à l'intérieur de vos conteneurs. + - S'il utilise une priorité de 2 à 10, assurez-vous de configurer `runtime_security_config.network.classifier_priority` sur un nombre strictement inférieur à la priorité choisie par votre fournisseur. + - S'ils utilisent la priorité 11 ou supérieure, vous pouvez ignorer ce paragraphe. + +Par exemple, il existe une condition de concurrence connue avec Cilium 1.9 et versions antérieures avec Datadog Agent (version 7.36 à 7.39.1, 7.39.2 exclu) qui peut se produire lors du démarrage d'un nouveau pod. La condition de concurrence peut entraîner une perte de connectivité à l'intérieur du pod, selon la configuration de Cilium. + +En fin de compte, si Datadog Agent ou vos fournisseurs tiers ne peuvent pas être configurés pour empêcher le problème de se produire, vous devez désactiver les détections réseau de Workload Protection en suivant les étapes ci-dessous : + +- Ajoutez le paramètre suivant à votre fichier de configuration `system-probe.yaml` sur les installations basées sur le host : + +```yaml +runtime_security_config: + network: + enabled: false +``` +- Ajoutez les valeurs suivantes si vous utilisez le Helm Chart public pour déployer Datadog Agent : + +```yaml +datadog: + securityAgent: + runtime: + network: + enabled: false +``` +- Ajoutez la variable d'environnement suivante si vous déployez manuellement le conteneur de Datadog Agent : + +```bash +DD_RUNTIME_SECURITY_CONFIG_NETWORK_ENABLED=false +``` + +## Dépannage des interruptions de session à distance ou d'admission de pod Kubernetes {#troubleshooting-kubernetes-remote-session-or-pod-admission-disruptions} + +Workload Protection collecte les identités des utilisateurs Kubernetes et enrichit vos événements Workload Protection avec le contexte nécessaire pour différencier les accès à distance à votre infrastructure de l'activité générée par vos charges de travail. Cette intégration repose sur un [Kubernetes Mutating Webhook][2] pour instrumenter les sessions `kubectl exec`. Si cette instrumentation perturbe l'admission des pods ou la création de sessions `kubectl exec`, suivez les étapes ci-dessous pour désactiver la fonctionnalité. + +{{< tabs >}} + +{{% tab "Datadog Operator" %}} + +1. Ajoutez ce qui suit à la section `spec` du fichier `datadog-agent.yaml` : + + ```yaml + # datadog-agent.yaml file + apiVersion: datadoghq.com/v2alpha1 + kind: DatadogAgent + metadata: + name: datadog + spec: + features: + # Integrate with Kubernetes to enrich Workload Protection events with Kubernetes user identities + admissionController: + cwsInstrumentation: + enabled: false + ``` + +2. Appliquez les modifications et redémarrez l'Agent. + +{{% /tab %}} + +{{% tab "Helm" %}} + +1. Ajoutez ce qui suit à la section `datadog` du fichier `datadog-values.yaml` : + + ```yaml + # datadog-values.yaml file + + # Integrate with Kubernetes to enrich Workload Protection events with Kubernetes user identities + clusterAgent: + admissionController: + cwsInstrumentation: + enabled: false + ``` + +2. Redémarrez l'Agent. + +{{% /tab %}} + +{{% tab "DaemonSet" %}} + +1. (facultatif) Ajoutez le paramètre suivant à la section `env` de `cluster-agent` dans le fichier `cluster-agent-deployment.yaml` : + + ```bash + # Source: datadog/templates/cluster-agent-deployment.yaml + apiVersion:app/1 + kind: Deployment + [...] + spec: + [...] + template: + [...] + spec: + [...] + containers: + [...] + - name: cluster-agent + [...] + env: + - name: DD_RUNTIME_ADMISSION_CONTROLLER_CWS_INSTRUMENTATION_ENABLED + value: "false" + ``` + +{{% /tab %}} +{{< /tabs >}} + +## Désactiver Workload Protection {#disable-workload-protection} + +Pour désactiver Workload Protection, suivez les étapes correspondant à la plateforme de Datadog Agent. + +### Helm {#helm} + +Dans le `values.yaml` Helm, définissez `securityAgent.runtime` sur `enabled: false` comme suit : + +{{< code-block lang="yaml" filename="values.yaml" disable_copy="false" collapsible="true" >}} + +# values.yaml file +datadog: + +# Set to false to Disable CWS +securityAgent: + runtime: + enabled: false +{{< /code-block >}} + +### Daemonset/Docker {#daemonsetdocker} + +Appliquez la modification de variable d'environnement suivante au déploiement de System Probe et de Security Agent pour un Daemonset : + +{{< code-block lang="json" filename="daemon.json" disable_copy="false" collapsible="true" >}} + +DD_RUNTIME_SECURITY_CONFIG_ENABLED=false +{{< /code-block >}} + +### Host {#host} + +Modifiez `system-probe.yaml` et `security-agent.yaml` pour désactiver la configuration du runtime : + +1. Désactivez Workload Protection dans `/etc/datadog-agent/system-probe.yaml`. Définissez `runtime_security_config` sur `enabled: false` : + {{< code-block lang="yaml" filename="system-probe.yaml" disable_copy="false" collapsible="true" >}} + + ########################################## + ## Security Agent Runtime Configuration ## + ## ## + ## Settings to send logs to Datadog are ## + ## fetched from section `logs_config` ## + ## in datadog-agent.yaml ## + ########################################## + + runtime_security_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable full Workload Protection. + # + enabled: false + + ## @param fim_enabled - boolean - optional - default: false + ## Set to true to only enable the File Integrity Monitoring feature. + # fim_enabled: false + + ## @param socket - string - optional - default: /opt/datadog-agent/run/runtime-security.sock + ## The full path of the unix socket where the security runtime module is accessed. + # + # socket: /opt/datadog-agent/run/runtime-security.sock + {{< /code-block >}} +2. Désactivez Workload Protection dans `/etc/datadog-agent/security-agent.yaml`. Définissez `runtime_security_config` sur `enabled: false` : + {{< code-block lang="yaml" filename="security-agent.yaml" disable_copy="false" collapsible="true" >}} + + ########################################## + ## Security Agent Runtime Configuration ## + ## ## + ## Settings to send logs to Datadog are ## + ## fetched from section `logs_config` ## + ## in datadog-agent.yaml ## + ########################################## + + runtime_security_config: + ## @param enabled - boolean - optional - default: false + ## Set to true to enable the Security Runtime Module. + # + enabled: false + + ## @param socket - string - optional - default: /opt/datadog-agent/run/runtime-security.sock + ## The full path of the unix socket where the security runtime module is accessed. + # + # socket: /opt/datadog-agent/run/runtime-security.sock + {{< /code-block >}} +3. Redémarrez vos Datadog Agents. + +[1]: /fr/help/ +[2]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ +[3]: /fr/agent/troubleshooting/send_a_flare/?tab=agent \ No newline at end of file diff --git a/hugo/content/fr/serverless/aws_lambda/instrumentation/_index.md b/hugo/content/fr/serverless/aws_lambda/instrumentation/_index.md index 6f809713a31..22495106c2b 100644 --- a/hugo/content/fr/serverless/aws_lambda/instrumentation/_index.md +++ b/hugo/content/fr/serverless/aws_lambda/instrumentation/_index.md @@ -6,35 +6,71 @@ aliases: further_reading: - link: /serverless/configuration/ tag: Documentation - text: Configurer la surveillance sans serveur + text: Configurer Serverless Monitoring - link: /integrations/amazon_lambda/ tag: Documentation text: Intégration AWS Lambda -title: Instrumenter les applications AWS Lambda +- link: https://learn.datadoghq.com/courses/visibility-aws-lambda + tag: Centre d'apprentissage + text: Configurer AWS Lambda pour Serverless Monitoring avec Datadog +- link: /mcp_server/tools/#serverless_onboarding + tag: Documentation + text: 'Datadog MCP Server : serverless_onboarding tool' +title: Instrumentez les applications AWS Lambda --- -## Aperçu {#overview} +## Présentation {#overview} -Instrumentez vos applications AWS Lambda avec une extension Datadog Lambda pour collecter des traces, des métriques améliorées et des métriques personnalisées. L'extension Datadog Lambda est analogue à l'utilisation de l'agent Datadog et des SDK Datadog pour les infrastructures et applications basées sur des hôtes. +Instrumentez vos applications AWS Lambda avec la Datadog Lambda Extension pour collecter des traces, des métriques améliorées et des métriques personnalisées. La Datadog Lambda Extension est analogue à l'utilisation du Datadog Agent et des Datadog SDKs pour l'infrastructure et les applications basées sur des hosts. -{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Un diagramme montrant comment Datadog reçoit la télémétrie de votre application AWS Lambda instrumentée. Votre application Lambda, instrumentée avec une bibliothèque Datadog Lambda, envoie des journaux, des traces, des métriques améliorées et des métriques personnalisées à l'extension Datadog Lambda, qui pousse ensuite ces données vers Datadog." style="width:100%;" >}} +{{< img src="serverless/serverless_tracing_installation_instructions.png" alt="Un diagramme qui montre comment Datadog reçoit la télémétrie de votre application AWS Lambda instrumentée. Votre application Lambda, instrumentée avec la Datadog Lambda Library, envoie des logs, des traces, des métriques améliorées et des métriques personnalisées à la Datadog Lambda Extension, qui transmet ensuite ces données à Datadog." style="width:100%;" >}} ## Démarrage rapide {#quick-start} -Pour commencer, [inscrivez-vous pour un compte Datadog][1] si vous n'en avez pas déjà un. Ensuite, suivez le [flux d'installation dans l'application dans Fleet Automation][8] pour AWS Lambda afin d'instrumenter vos fonctions Lambda. Cette configuration de démarrage rapide permet à vos fonctions d'envoyer des métriques, des journaux et des traces en temps réel à Datadog. +{{< site-region region="gov,gov2" >}} +
Cette fonctionnalité n'est pas prise en charge pour votre site Datadog sélectionné ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} + +Pour commencer, [créez un compte Datadog][1] si vous n'en avez pas déjà un. Ensuite, suivez le [flux d'installation dans l'application via Fleet Automation][8] pour AWS Lambda afin d'instrumenter vos fonctions Lambda. Cette configuration de démarrage rapide permet à vos fonctions d'envoyer des métriques, des logs et des traces en temps réel à Datadog. + +Un exemple d'application est [disponible sur GitHub][6] avec des instructions sur la façon de déployer avec plusieurs runtimes et outils d'infrastructure-as-code. + +Le processus de démarrage rapide configure vos fonctions Lambda à la volée. Pour instrumenter les fonctions Lambda de manière permanente, consultez les sections ci-dessous pour l'onboarding assisté par agent ou l'instrumentation manuelle. -Une application d'exemple est [disponible sur GitHub][6] avec des instructions sur la façon de déployer avec plusieurs environnements d'exécution et outils d'infrastructure en tant que code. +## Configuration avec l'onboarding assisté par agent {#set-up-with-agentic-onboarding} -Le processus de démarrage rapide configure vos fonctions Lambda à la volée. Pour instrumenter les fonctions Lambda de manière permanente, consultez les instructions détaillées dans la section suivante. +{{< site-region region="gov,gov2" >}} +
Cette fonctionnalité n'est pas prise en charge pour votre site Datadog sélectionné ({{< region-param key="dd_site_name" >}}).
+{{< /site-region >}} -## Utilisez le serveur Datadog MCP {#use-the-datadog-mcp-server} +Utilisez l'onboarding assisté par agent pour configurer la surveillance de vos fonctions Lambda avec l'assistance de l'IA. L'onboarding assisté par agent détecte les frameworks de votre projet, applique la configuration requise sur place et vérifie que les données circulent. Deux chemins complémentaires utilisent le même compte Datadog : -Utilisez le [serveur Datadog MCP][9] pour configurer la surveillance de vos conteneurs AWS Lambda avec l'assistance de l'IA. Après vous être connecté, essayez une invite comme : +- **AI Setup CLI** : un outil de terminal autonome. Utilisez-le lorsque vous ne souhaitez pas installer de serveur MCP. +- **MCP Server** : Configurez-le depuis votre IDE via un assistant de codage tel que Claude Code ou Cursor. + +{{< tabs >}} +{{% tab "AI Setup CLI" %}} + +Exécutez la CLI dans le répertoire de votre projet (nécessite Node.js 22+). Il lie votre compte Datadog, puis instrumente votre fonction Lambda : ```shell -Help me monitor my AWS Lambda functions with Datadog +npx @datadog/ai-setup-cli --product serverless --serverless-compute-type=aws-lambda ``` -## Instructions d'instrumentation {#instrumentation-instructions} +Omettez `--product` pour exécuter de manière interactive, ou ajoutez `--site` pour cibler votre site Datadog. + +{{% /tab %}} +{{% tab "MCP Server" %}} + +Utilisez l'outil [`serverless_onboarding`](https://docs.datadoghq.com/fr/agentic_onboarding/setup/?tab=serverlessmonitoring#mcp-server) du Datadog MCP Server pour configurer la surveillance de vos fonctions Lambda avec l'assistance de l'IA. Une fois connecté, essayez une invite telle que : + +``` +Help me monitor my AWS Lambda functions with Datadog. +``` + +{{% /tab %}} +{{< /tabs >}} + +## Instrumentation manuelle {#manual-instrumentation} {{< card-grid card_width="30%" image_width="200" >}} {{< image-card href="/serverless/installation/python/" src="integrations_logos/python.png" alt="Python" >}} @@ -47,15 +83,15 @@ Help me monitor my AWS Lambda functions with Datadog ## Configurations avancées {#advanced-configurations} -Une fois que vous avez terminé l'instrumentation et que vous avez configuré la collecte de télémétrie, vous pouvez utiliser [Configurer la surveillance sans serveur pour AWS Lambda][3] pour : +Une fois l'instrumentation terminée et la collecte de télémétrie configurée, vous pouvez utiliser [Configure Serverless Monitoring for AWS Lambda][3] pour : -- connecter vos métriques, traces et journaux à l'aide de balises -- collecter la télémétrie des ressources AWS telles que API Gateway, AppSync et Step Functions -- capturer les charges utiles de requête et de réponse pour chaque invocation de Lambda +- Connectez vos métriques, traces et logs à l'aide d'étiquettes +- collecter la télémétrie à partir de ressources AWS telles qu'API Gateway, AppSync et Step Functions +- capturer les charges utiles de requête et de réponse pour des invocations Lambda individuelles - lier les erreurs de vos fonctions Lambda à votre code source -- filtrer ou supprimer les informations sensibles des journaux ou des traces +- filtrer ou nettoyer les informations sensibles des logs ou des traces -## Lectures complémentaires {#further-reading} +## Pour aller plus loin {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -65,4 +101,4 @@ Une fois que vous avez terminé l'instrumentation et que vous avez configuré la [5]: /fr/serverless/aws_lambda/remote_instrumentation [6]: https://github.com/DataDog/serverless-sample-app [8]: https://app.datadoghq.com/fleet/install-agent/latest?platform=lambda -[9]: /fr/agentic_onboarding/setup \ No newline at end of file +[9]: /fr/mcp_server/tools/#serverless_onboarding \ No newline at end of file diff --git a/hugo/content/fr/synthetics/_index.md b/hugo/content/fr/synthetics/_index.md index 4c86f2056da..4985bfe0571 100644 --- a/hugo/content/fr/synthetics/_index.md +++ b/hugo/content/fr/synthetics/_index.md @@ -13,40 +13,43 @@ description: Utilisez des tests automatisés pour vous assurer que les aspects l further_reading: - link: /synthetics/guide/ tag: Documentation - text: Guides d'utilisation de la surveillance Synthetic + text: Guides d'utilisation de Synthetic Monitoring - link: https://learn.datadoghq.com/courses/getting-started-with-synthetic-browser-testing tag: Centre d'apprentissage text: 'Centre d''apprentissage Datadog : Premiers pas avec les tests de navigateur Synthetic' - link: https://dtdg.co/fe tag: Validation des bases - text: Participer à une session interactive pour améliorer vos capacités de testing + text: Participer à une session interactive pour améliorer vos capacités de test Synthetic +- link: https://www.datadoghq.com/blog/network-test-protocols/ + tag: Blog + text: Tester les chemins réseau avec TCP, UDP et ICMP dans Datadog - link: https://www.datadoghq.com/blog/http-security-headers-synthetic-tests/ tag: Blog - text: Comment sécuriser les en-têtes HTTP avec des tests synthétiques + text: Comment sécuriser les en-têtes HTTP avec des tests Synthetic - link: https://www.datadoghq.com/blog/synthetic-monitoring-updates/ tag: Blog - text: Accélérez votre compréhension de l’expérience utilisateur avec Synthetic Monitoring - de Datadog + text: Accélérez votre compréhension de l’expérience utilisateur avec Datadog Synthetic + Monitoring - link: https://www.datadoghq.com/blog/smoke-testing-synthetic-monitoring/ tag: Blog text: Créer des tests UX de fumée efficaces avec Synthetic Monitoring - link: https://www.datadoghq.com/blog/slo-synthetic-monitoring/ tag: Blog - text: Améliorez la précision et les performances des SLO grâce à Synthetic Monitoring - de Datadog + text: Améliorez la précision et les performances des SLO grâce à Datadog Synthetic + Monitoring - link: https://www.datadoghq.com/blog/mobile-apps-synthetic-tests/ tag: Blog - text: Comment construire des tests synthétiques fiables et précis pour vos applications + text: Comment créer des tests Synthetic fiables et précis pour vos applications mobiles - link: https://www.datadoghq.com/blog/ambassador-browser-tests/ tag: Blog - text: Comment j'ai aidé mon client à faire évoluer ses tests de navigateur avec - Datadog + text: Comment j'ai aidé mon client à mettre à l'échelle ses tests de navigateur + avec Datadog - link: https://www.datadoghq.com/blog/datadog-terraform-synthetic-testing/ tag: Blog - text: Automatiser votre infrastructure de tests synthétiques avec Datadog Synthetic + text: Automatiser votre infrastructure de tests Synthetic avec Datadog Synthetic Monitoring et Terraform - link: https://www.datadoghq.com/blog/simplifying-troubleshooting-with-synthetic-monitoring tag: Blog @@ -59,24 +62,24 @@ further_reading: - link: https://app.datadoghq.com/release-notes?category=Synthetic%20Monitoring tag: Notes de version text: Découvrez les dernières versions de Datadog Synthetic Monitoring ! (Connexion - requise pour l'application) -title: Tests et surveillance Synthetic + à l'application requise) +title: Synthetic Testing et Synthetic Monitoring --- -{{< learning-center-callout header="Participez à une session de webinaire de formation" hide_image="true" btn_title="Inscrivez-vous" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} - Explorez et inscrivez-vous aux sessions Foundation Enablement Découvrez comment Datadog Synthetic Monitoring est une solution de surveillance proactive qui vous permet de créer des tests API, de navigateur et mobiles sans code pour simuler automatiquement les flux et les requêtes des utilisateurs vers vos applications, vos points de terminaison clés et vos couches réseau. +{{< learning-center-callout header="Rejoignez une session de webinaire de formation" hide_image="true" btn_title="S'inscrire" btn_url="https://www.datadoghq.com/technical-enablement/session/synthetics/">}} + Explorez et inscrivez-vous aux sessions de formation fondamentale. Découvrez comment Datadog Synthetic Monitoring est une solution de surveillance proactive qui vous permet de créer des tests d'API, de navigateur et mobiles sans code pour simuler automatiquement les parcours utilisateur et les requêtes vers vos applications, points de terminaison clés et couches réseau. {{< /learning-center-callout >}} -Les tests synthétiques vous permettent d'observer comment vos systèmes et applications fonctionnent en utilisant **des requêtes et actions simulées du monde entier**. Datadog suit la performance de vos pages web et de vos API, du backend au frontend, et à divers niveaux réseau (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP`, et `gRPC`) de manière contrôlée et stable, vous alertant sur des comportements défectueux tels que des régressions, des fonctionnalités cassées, des temps de réponse élevés et des codes d'état inattendus. +Les tests Synthetic vous permettent d'observer les performances de vos systèmes et applications à l'aide de **requêtes et actions simulées depuis le monde entier**. Datadog suit les performances de vos pages Web et API du backend au frontend, et à différents niveaux réseau (`HTTP`, `SSL`, `DNS`, `WebSocket`, `TCP`, `UDP`, `ICMP` et `gRPC`) de manière contrôlée et stable, en vous alertant sur les comportements défectueux tels que les régressions, les fonctionnalités cassées, les temps de réponse élevés et les codes d'état inattendus. -**Calculer les SLO** sur vos points de terminaison clés et vos parcours utilisateurs facilite le respect de vos objectifs de performance applicative et permet finalement de fournir une expérience client cohérente. +**Calculer des SLO** sur vos points de terminaison clés et parcours utilisateur facilite le respect de vos objectifs de performance applicative et permet, en fin de compte, d'offrir une expérience client cohérente. Vous pouvez créer des tests Synthetic dans l'[application Datadog][1], avec l'[API][2] ou avec [Terraform][3]. -## Configurer des tests API et des tests API à étapes multiples {#set-up-api-tests-and-multistep-api-tests} +## Configurer des tests d'API et des tests d'API en plusieurs étapes {#set-up-api-tests-and-multistep-api-tests} Les tests API vous permettent de lancer des requêtes [individuelles][4] ou des [chaînes][5] de requêtes afin d'effectuer des vérifications sur vos systèmes essentiels à différents niveaux du réseau : [test HTTP][6], [test SSL][7], [test DNS][8], [test WebSocket][9], [test TCP][10], [test UDP test][11], [test ICMP][12] et [test gRPC][13]. -{{< img src="synthetics/api_test.png" alt="Tests API" style="width:100%;">}} +{{< img src="synthetics/api_tests/api_test_shopist.png" alt="Page de détails d'un test d'API HTTP affichant l'onglet Activité avec la disponibilité globale, une chronologie des alertes et une liste des dernières exécutions de test" style="width:100%;">}} ## Enregistrer des tests de navigateur {#record-browser-tests} @@ -88,18 +91,24 @@ Utilisez des [tests Browser Synthetic][14] pour surveiller l'expérience de vos Utilisez des [tests d'application mobile Synthetic][21] pour surveiller l'expérience de vos clients sur vos applications iOS et Android, de bout en bout et sur différents types d'appareils. -{{< img src="synthetics/mobile_app_tests.png" alt="Exemples du flux de travail d'enregistrement pour un test mobile synthétique" style="width:100%;">}} +{{< img src="synthetics/mobile_app_tests.png" alt="Exemples du workflow d'enregistrement pour un test mobile synthétique" style="width:100%;">}} ## Créer des tests de chemin réseau {#create-network-path-tests} -Créer [des tests de chemin réseau synthétiques][25] à partir d'emplacements gérés pour effectuer des vérifications TCP, UDP et ICMP et visualiser les routes des paquets à travers des points de terminaison globaux. +Créez des [tests de chemin réseau synthétiques][25] depuis des emplacements gérés pour effectuer des vérifications TCP, UDP et ICMP et visualiser les routes des paquets à travers des points de terminaison mondiaux. -{{< img src="synthetics/network_tests/syn_network_path.png" alt="Exemples d'un test de réseau TCP synthétique" style="width:100%;">}} +{{< img src="synthetics/network_tests/syn_network_path.png" alt="Exemples d'un test réseau TCP synthétique" style="width:100%;">}} ## Suites de tests {#test-suites} -Utilisez [Suites de Tests Synthétiques][26] pour organiser plusieurs tests en collections logiques regroupées par parcours utilisateur, environnement, emplacement, service ou équipe pour une gestion et un dépannage simplifiés. +Utilisez les [collections de tests Synthetic][26] pour organiser plusieurs tests en collections logiques regroupées par parcours utilisateur, environnement, emplacement, service ou équipe pour une gestion et un dépannage rationalisés. + +{{< img src="synthetics/test_suites/test_suite_summary.png" alt="Page récapitulative de la collection de tests Synthetic Monitoring" style="width:100%;">}} + +## Explorer Bits Testing et Goal-Based Testing {#explore-bits-testing-and-goal-based-testing} + +Utilisez [Bits Testing][27] pour explorer votre application, cartographier des parcours utilisateur critiques et générer des tests Synthetic qui les couvrent, y compris [Goal-Based tests][28] qui vérifient que les utilisateurs peuvent atteindre un objectif en utilisant des tests non déterministes et agentiques. -{{< img src="synthetics/test_suites/test_suite_summary.png" alt="Page de résumé de la suite de tests de surveillance synthétique" style="width:100%;">}} +{{< img src="synthetics/bits_testing/bits_testing_landing.png" alt="La page d'accueil de Bits Testing avec une invite pour décrire la couverture de test que vous souhaitez" style="width:100%;">}} ## Lancer des emplacements privés {#launch-private-locations} @@ -107,57 +116,57 @@ Utilisez des [emplacements privés Synthetic][15] pour surveiller des API et sit {{< img src="synthetics/private_locations.png" alt="Emplacements privés" style="width:100%;">}} -## Connecter les données et les traces {#connect-data-and-traces} +## Connecter des données et des traces {#connect-data-and-traces} Datadog vous permet d'[intégrer vos tests Synthetic à vos traces APM][16] pour identifier l'origine des échecs parmi vos requêtes frontend, réseau et backend. -{{< img src="synthetics/synthetics_traces.mp4" alt="Surveillance Synthetics" video=true style="width:100%;">}} +{{< img src="synthetics/apm/synthetics_apm_new.mp4" alt="Un test d'API ayant échoué avec le panneau latéral ouvert sur l'onglet Trace, montrant la trace APM générée par l'exécution de test avec des spans codés par couleur à travers les services" video=true style="width:100%;">}} -## Accéder aux tableaux de bord prêts à l'emploi {#access-out-of-the-box-dashboards} +## Accéder aux dashboards prêts à l'emploi {#access-out-of-the-box-dashboards} Utilisez les [dashboards Synthetic prêts à l'emploi][17] pour analyser les données de performance liées à vos tests API, tests API à plusieurs étapes, tests Browser et emplacements privés, ainsi qu'aux événements Datadog. -{{< img src="synthetics/dashboards/test_dashboard.png" alt="Tableau de bord de résumé de la surveillance synthétique et des tests continus" style="width:100%;">}} +{{< img src="synthetics/dashboards/test_dashboard.png" alt="Dashboard récapitulatif de Synthetic Monitoring et Continuous Testing" style="width:100%;">}} -## Utilisez l'Explorateur des Résultats de Surveillance et de Tests Synthétiques {#use-the-synthetic-monitoring-testing-results-explorer} +## Utiliser Synthetic Monitoring & Testing Results Explorer {#use-the-synthetic-monitoring-testing-results-explorer} Créez des [requêtes de recherche et des visualisations][20] pour vos exécutions de tests Synthetic ou vos lots de tests exécutés dans des pipelines CI/CD. -{{< img src="continuous_testing/explorer_ci_batches_1.png" alt="Explorateur de Tests Continus" style="width:100%;">}} +{{< img src="continuous_testing/explorer_ci_batches_1.png" alt="Continuous Testing Explorer" style="width:100%;">}} ## Suivre la couverture des tests {#track-testing-coverage} -Optimisez votre suite de tests en [vous assurant que les workflows les plus importants de votre applications sont testés][22]. +Optimisez votre collection de tests en [vous assurant que les workflows les plus importants de votre applications sont testés][22]. -{{< img src="synthetics/test_coverage/test_coverage.png" alt="Explorateur de Tests Continus" style="width:100%;">}} +{{< img src="synthetics/test_coverage/test_coverage.png" alt="Continuous Testing Explorer" style="width:100%;">}} -## Notifications de surveillance synthétique {#synthetic-monitoring-notifications} +## Notifications de Synthetic Monitoring {#synthetic-monitoring-notifications} -Utilisez et enrichissez les moniteurs synthétiques pour envoyer des notifications lorsque un test de surveillance synthétique échoue. Les fonctionnalités suivantes sont disponibles : +Utilisez et enrichissez les monitors synthétiques pour envoyer des notifications lorsqu'un test de Synthetic Monitoring échoue. Les fonctionnalités suivantes sont disponibles : -Messages de moniteur pré-remplis -: Les messages de moniteur pré-remplis fournissent un point de départ structuré pour les alertes de tests synthétiques. Chaque message comprend un titre, un résumé et un pied de page standardisés contenant des métadonnées de test, ce qui facilite la compréhension de l'alerte d'un coup d'œil. +Messages de monitor préremplis +: Les messages de monitor préremplis fournissent un point de départ structuré pour les alertes de test Synthetic. Chaque message comprend un titre, un résumé et un pied de page standardisés contenant les métadonnées du test, ce qui facilite la compréhension de l'alerte en un coup d'œil. Template variables -: Les variables de modèle vous permettent d'injecter des données spécifiques au test dans les notifications de moniteur de manière dynamique. Ces variables proviennent de l'objet `synthetics.attributes`. +: Les variables de modèle vous permettent d'injecter dynamiquement des données spécifiques au test dans les notifications de monitor. Ces variables proviennent de l'objet `synthetics.attributes`. Utilisation avancée -: L'utilisation avancée inclut des techniques pour faire ressortir des informations de test plus approfondies ou structurer des messages complexes en utilisant le modèle handlebars. +: L'utilisation avancée inclut des techniques pour faire ressortir des informations de test plus approfondies ou structurer des messages complexes à l'aide de modèles Handlebars. -Alerte conditionnelle -: L'alerte conditionnelle vous permet de modifier le contenu d'une notification de moniteur en fonction de résultats de test spécifiques ou de conditions d'échec. +Alertes conditionnelles +: Les alertes conditionnelles vous permettent de modifier le contenu d'une notification de monitor en fonction de résultats de test ou de conditions d'échec spécifiques. -Pour plus d'informations, voir [notifications de surveillance synthétique][24]. +Pour plus d'informations, consultez [Synthetic Monitoring notifications][24]. ## Historique des versions {#version-history} -Utilisez [l'historique des versions dans la surveillance synthétique][23] pour exécuter une version précédente d'un test, restaurer votre test à une version sauvegardée ou cloner une version pour créer un nouveau test de surveillance synthétique. +Utilisez [Version History in Synthetic Monitoring][23] pour exécuter une version précédente d'un test, restaurer votre test à n'importe quelle version enregistrée ou cloner une version pour créer un nouveau test de Synthetic Monitoring. ## Prêt à commencer ? {#ready-to-start} -Consultez [Démarrer avec la surveillance synthétique][18] pour des instructions sur la création de votre premier test synthétique et la surveillance de vos applications web. Ensuite, explorez [Démarrer avec des emplacements privés][19] pour des instructions sur la création de votre emplacement privé et l'exécution de tests synthétiques avec votre emplacement privé. +Consultez [Débuter avec Synthetic Monitoring][18] pour obtenir des instructions sur la création de votre premier test Synthetic et la surveillance de vos applications web. Ensuite, consultez [Débuter avec les emplacements privés][19] pour savoir comment créer votre emplacement privé et exécuter des tests Synthetic avec celui-ci. -## Lectures complémentaires {#further-reading} +## Pour aller plus loin {#further-reading} {{< partial name="whats-next/whats-next.html" >}} @@ -187,4 +196,6 @@ Consultez [Démarrer avec la surveillance synthétique][18] pour des instruction [23]: /fr/synthetics/guide/version_history/ [24]: /fr/synthetics/notifications/ [25]: /fr/synthetics/network_path_tests/ -[26]: /fr/synthetics/test_suites/ \ No newline at end of file +[26]: /fr/synthetics/test_suites/ +[27]: /fr/synthetics/bits_testing/ +[28]: /fr/synthetics/goal_based_testing/ \ No newline at end of file diff --git a/hugo/content/fr/tracing/guide/ingestion_sampling_use_cases.md b/hugo/content/fr/tracing/guide/ingestion_sampling_use_cases.md new file mode 100644 index 00000000000..45d60d4d025 --- /dev/null +++ b/hugo/content/fr/tracing/guide/ingestion_sampling_use_cases.md @@ -0,0 +1,171 @@ +--- +description: Explorez différents cas d'utilisation et stratégies d'échantillonnage + de traces pour optimiser le volume d'ingestion tout en maintenant les capacités + de dépannage. +further_reading: +- link: /tracing/guide/trace_ingestion_volume_control/ + tag: Guide + text: Comment contrôler les volumes ingérés +- link: https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/ + tag: Architecture Center + text: 'Maîtriser le traçage distribué : défis liés au volume de données et approche + de Datadog pour un échantillonnage efficace' +- link: https://www.datadoghq.com/architecture/optimizing-distributed-tracing-best-practices-for-remaining-within-budget-and-capturing-critical-traces/ + tag: Architecture Center + text: 'Optimiser le traçage distribué : bonnes pratiques pour respecter le budget + et capturer les traces critiques' +title: Cas d'utilisation de l'échantillonnage de traces +--- +## Présentation {#overview} + +Les données de trace ont tendance à être répétitives. Un problème dans votre application est rarement identifié dans une trace unique, sans être constaté dans d'autres traces. Pour les services à haut débit, en particulier pour les incidents qui nécessitent votre attention, un problème présente des symptômes de manière répétée dans plusieurs traces. Par conséquent, vous n'avez généralement pas besoin de collecter chaque trace pour un service ou un endpoint, ni chaque span au sein d'une trace. Les [mécanismes de contrôle d'ingestion][1] de Datadog APM vous aident à conserver la visibilité dont vous avez besoin pour résoudre les problèmes, tout en réduisant le bruit et en maîtrisant les coûts. + +Les mécanismes d'ingestion sont des configurations au sein du Datadog Agent et des SDK Datadog. Si vous utilisez les SDK OpenTelemetry pour instrumenter vos applications, lisez [Ingestion Sampling with OpenTelemetry][2]. + +Ce guide vous aide à comprendre quand et comment utiliser les configurations de contrôle d'ingestion en fonction des principaux cas d'utilisation que vous pourriez rencontrer. Il couvre : + +- [Déterminer quels mécanismes d'ingestion sont utilisés](#determining-which-ingestion-mechanisms-are-used) pour un service donné +- [Les cas d'utilisation axés sur la conservation de types de traces particuliers](#keeping-certain-types-of-traces) +- [Les cas d'utilisation axés sur la réduction des traces ingérées](#reducing-ingestion-for-high-volume-services) + + +## Déterminer quels mécanismes d'ingestion sont utilisés {#determining-which-ingestion-mechanisms-are-used} + +Pour identifier les mécanismes d'ingestion actuellement utilisés dans votre environnement Datadog, accédez à la [page Ingestion Control][3]. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/ingestion_control_page.png" alt="Page Ingestion Control" style="width:90%;" >}} + +Le tableau donne des informations sur les volumes ingérés *par service*. La colonne Configuration fournit une première indication de la configuration actuelle. Il indique : +- `AUTOMATIC` si le taux d'échantillonnage calculé dans le Datadog Agent est appliqué aux traces générées par le service. En savoir plus sur les spécificités de la [logique d'ingestion du Datadog Agent][5]. +- `CONFIGURED` si un taux d'échantillonnage de trace personnalisé configuré dans le SDK est appliqué aux traces générées par le service. + +Cliquez sur les services pour voir les détails sur les décideurs d'échantillonnage (par exemple, l'Agent ou le SDK, les règles ou les taux d'échantillonnage) utilisés pour chaque service, ainsi que sur les [mécanismes d'échantillonnage d'ingestion][1] exploités pour les services des spans ingérés. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary.png" alt="Résumé de l'ingestion de service" style="width:90%;" >}} + +Dans l'exemple de résumé de l'ingestion de service ci-dessus, le tableau {{< ui >}}Ingestion reasons breakdown{{< /ui >}} montre que la plupart des raisons d'ingestion pour ce service proviennent de `rule` ([règle d'échantillonnage définie par l'utilisateur][6]). + +Les principaux décideurs d'échantillonnage pour ce service montrent que le service `web-store` reçoit des décisions d'échantillonnage de `web-store`, `shopist-web-ui`, `shipping-worker`, `synthetics-browser` et `product-recommendation`. Ces cinq services contribuent tous aux décisions d'échantillonnage globales qui affectent les spans du service `web-store`. Lors de la détermination de la manière d'ajuster l'ingestion pour web-store, les cinq services doivent être pris en compte. + +## Conserver certains types de traces {#keeping-certain-types-of-traces} + +### Conserver des traces de transaction complètes {#keeping-entire-transaction-traces} + +L'ingestion de traces de transaction complètes garantit une visibilité sur le **flux de requête de service de bout en bout** pour des requêtes individuelles spécifiques. + +#### Solution : Échantillonnage basé sur la tête {#solution-head-based-sampling} + +Des traces complètes peuvent être ingérées avec des mécanismes d'[échantillonnage basé sur la tête][4] : la décision de conserver ou d'abandonner la trace est déterminée à partir du premier span de la trace, la *tête*, lors de la création de la trace. Cette décision est propagée via le contexte de requête aux services en aval. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/head-based-sampling.png" alt="Échantillonnage basé sur le début de la trace" style="width:100%;" >}} + +Pour décider quelles traces conserver et abandonner, le Datadog Agent calcule des [taux d'échantillonnage par défaut][5] pour chaque service à appliquer lors de la création de la trace, en fonction du trafic de l'application : +- Pour les applications à faible trafic, un taux d'échantillonnage de 100 % est appliqué. +- Pour les applications à fort trafic, un taux d'échantillonnage inférieur est appliqué avec un objectif de 10 traces complètes par seconde par Agent. + +Vous pouvez également remplacer le taux d'échantillonnage par défaut de l'Agent en configurant le taux d'échantillonnage par service. Consultez la section sur la façon de [conserver plus de traces pour des services spécifiques](#keeping-more-traces-for-specific-services-or-resources) pour plus d'informations. + +#### Configurer l'échantillonnage basé sur la tête {#configuring-head-based-sampling} + +Les taux d'échantillonnage par défaut sont calculés pour cibler 10 traces complètes par seconde, par Agent. Il s'agit d'un nombre *cible* de traces, qui résulte de la moyenne des traces sur une période donnée. Ce n'est *pas* une limite stricte, et les pics de trafic peuvent entraîner l'envoi d'un nombre nettement plus élevé de traces à Datadog pendant de courtes périodes. + +Vous pouvez augmenter ou diminuer cette cible en configurant le paramètre du Datadog Agent `target_traces_per_second` ou la variable d'environnement `DD_APM_TARGET_TPS`. En savoir plus sur les [mécanismes d'ingestion de l'échantillonnage basé sur la tête][5]. + +**Remarque :** La modification de la configuration d'un Agent a un impact sur les taux d'échantillonnage en pourcentage pour *tous les services* qui rapportent des traces à ce Datadog Agent. + +Dans la plupart des scénarios, cette configuration au niveau de l'Agent reste dans les limites du quota alloué, offre une visibilité suffisante sur les performances de votre application et vous aide à prendre les décisions appropriées pour votre activité. + +### Conserver plus de traces pour des services ou des ressources spécifiques {#keeping-more-traces-for-specific-services-or-resources} + +Si certains services et certaines requêtes sont critiques pour votre activité, vous souhaitez une meilleure visibilité sur ceux-ci. Vous pouvez souhaiter envoyer toutes les traces associées à Datadog afin de pouvoir examiner chacune des transactions individuelles. + +#### Solution : Règles d'échantillonnage {#solution-sampling-rules} + +Par défaut, les taux d'échantillonnage sont calculés pour cibler 10 traces par seconde par Datadog Agent. Vous pouvez remplacer le taux d'échantillonnage calculé par défaut en configurant des [règles d'échantillonnage][6] dans le SDK. + +Vous pouvez configurer des règles d'échantillonnage par service. Pour les traces qui commencent à partir du service spécifié par la règle, le taux d'échantillonnage en pourcentage défini est appliqué à la place du taux d'échantillonnage par défaut de l'Agent. + +#### Configuration d'une règle d'échantillonnage {#configuring-a-sampling-rule} + +Vous pouvez configurer des règles d'échantillonnage en définissant la variable d'environnement `DD_TRACE_SAMPLING_RULES`. + +Par exemple, pour envoyer 20 pour cent des traces pour le service nommé `my-service` : + +``` +DD_TRACE_SAMPLING_RULES='[{"service": "my-service", "sample_rate": 0.2}]' +``` + +En savoir plus sur les [mécanismes d'ingestion des règles d'échantillonnage][6]. + +### Conserver davantage de traces liées aux erreurs {#keeping-more-error-related-traces} + +Les traces comportant des segments d'erreur sont souvent le symptôme de défaillances du système. Conserver une proportion plus élevée de transactions avec erreurs garantit que vous avez toujours accès à certaines requêtes individuelles pertinentes. + +#### Solution : Taux d'échantillonnage des erreurs {#solution-error-sampling-rate} + +En plus des traces échantillonnées au niveau de la tête, vous pouvez augmenter le taux d'échantillonnage des erreurs afin que chaque Agent conserve des segments d'erreur supplémentaires, même si les traces associées ne sont pas conservées par l'échantillonnage au niveau de la tête. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/error-spans-sampling.png" alt="Échantillonnage d'erreurs" style="width:100%;" >}} + +**Remarques :** +- Les morceaux de trace distribués pourraient ne pas être ingérés car l'échantillonnage se produit localement au niveau du Datadog Agent. +- À partir de **Datadog Agent 6/7.41.0 et versions ultérieures**, `DD_APM_FEATURES=error_rare_sample_tracer_drop` peut être configuré pour inclure les segments abandonnés par les règles du SDK ou `manual.drop`. Plus de détails sont disponibles dans la [section Traces d'erreur de la documentation sur les mécanismes d'ingestion][9]. + +#### Configuration de l'échantillonnage des erreurs {#configuring-error-sampling} + +Vous pouvez configurer le nombre de segments d'erreur par seconde et par Agent à capturer en définissant la variable d'environnement `DD_APM_ERROR_TPS`. La valeur par défaut est de `10` erreurs par seconde. Pour ingérer **toutes les erreurs**, définissez une valeur arbitrairement élevée. Pour désactiver l'échantillonnage des erreurs, définissez `DD_APM_ERROR_TPS` sur `0`. + +## Réduction de l'ingestion pour les services à haut volume {#reducing-ingestion-for-high-volume-services} + +### Réduction du volume provenant des services de base de données ou de cache {#reducing-volume-from-database-or-cache-services} + +Les appels de base de données suivis peuvent représenter une grande quantité de données ingérées, alors que les métriques de performance des applications (telles que le nombre d'erreurs, le nombre de requêtes et la latence) suffisent à surveiller l'état de santé de la base de données. + +#### Solution : Règles d'échantillonnage pour les traces avec appels de base de données {#solution-sampling-rules-for-traces-with-database-calls} + +Pour réduire le volume de spans créé par le suivi des appels de base de données, configurez l'échantillonnage au début de la trace. + +Les services de base de données démarrent rarement une trace. Habituellement, les spans de base de données client sont des enfants d'un span de service backend instrumenté. + +Pour savoir **quels services démarrent les traces de base de données**, utilisez le graphique top list `Top Sampling Decision Makers` sur la page de contrôle d'ingestion [Service Ingestion Summary][7]. La configuration de l'échantillonnage basé sur l'en-tête pour ces services spécifiques réduit le volume des database spans ingérés, tout en garantissant qu'aucune trace incomplète n'est ingérée. Les traces distribuées sont soit conservées, soit entièrement supprimées. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/service-ingestion-summary-database.png" alt="Principaux décideurs en matière d'échantillonnage" style="width:90%;" >}} + +Par exemple, pour les appels de base de données tracés de `web-store-mongo`, les traces proviennent des services `web-store` et `shipping-worker` 99 % du temps. Par conséquent, pour réduire le volume pour `web-store-mongo`, configurez l'échantillonnage pour les services `web-store` et `shipping-worker`. + +#### Configurez l'échantillonnage pour supprimer les database spans {#configure-sampling-to-drop-database-spans} + +Reportez-vous à la [section de configuration des règles d'échantillonnage](#configuring-a-sampling-rule) pour plus d'informations sur la syntaxe des règles d'échantillonnage. + +Le service backend `web-store` appelle une base de données Mongo plusieurs fois par trace, et cela crée un volume important de spans indésirables : + +- Configurez une **règle d'échantillonnage de trace** pour le service backend `web-store`, en veillant à ce que 10 pour cent des traces entières soient conservées, y compris les Mongo spans. + + ``` + DD_TRACE_SAMPLING_RULES='[{"service": "web-store", "sample_rate": 0.1}]' + ``` + +- Optionnellement, si vous souhaitez conserver tous les spans `web-store`, configurez une **règle d'échantillonnage de span unique** pour conserver 100 pour cent des spans pour le service backend `web-store`. Cet échantillonnage n'ingère aucun database call span en dehors des 10 pour cent identifiés ci-dessus. + + ``` + DD_SPAN_SAMPLING_RULES='[{"service": "web-store", "sample_rate": 1}]' + ``` + + **Remarque** : La configuration d'une règle d'échantillonnage de span unique est particulièrement utile si vous utilisez des [métriques basées sur des spans][8], qui sont dérivées des spans ingérés. + +{{< img src="/tracing/guide/ingestion_sampling_use_cases/single-span-sampling3.png" alt="Échantillonnage des database spans" style="width:100%;" >}} + + +## Pour aller plus loin {#further-reading} + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /fr/tracing/trace_pipeline/ingestion_mechanisms/ +[2]: /fr/opentelemetry/guide/ingestion_sampling_with_opentelemetry/ +[3]: https://app.datadoghq.com/apm/traces/ingestion-control +[4]: /fr/tracing/trace_pipeline/ingestion_mechanisms/#head-based-sampling +[5]: /fr/tracing/trace_pipeline/ingestion_mechanisms/#in-the-agent +[6]: /fr/tracing/trace_pipeline/ingestion_mechanisms/#in-tracing-libraries-user-defined-rules +[7]: /fr/tracing/trace_pipeline/ingestion_controls/#service-ingestion-summary +[8]: /fr/tracing/trace_pipeline/generate_metrics/ +[9]: /fr/tracing/trace_pipeline/ingestion_mechanisms/?tab=java#error-and-rare-traces \ No newline at end of file diff --git a/hugo/content/fr/tracing/trace_pipeline/ingestion_controls.md b/hugo/content/fr/tracing/trace_pipeline/ingestion_controls.md index 4e1e76aba87..1fbb5ed2a98 100644 --- a/hugo/content/fr/tracing/trace_pipeline/ingestion_controls.md +++ b/hugo/content/fr/tracing/trace_pipeline/ingestion_controls.md @@ -14,37 +14,45 @@ further_reading: - link: /tracing/trace_pipeline/metrics/ tag: Documentation text: Métriques d'utilisation +- link: https://www.datadoghq.com/architecture/mastering-distributed-tracing-data-volume-challenges-and-datadogs-approach-to-efficient-sampling/ + tag: Architecture Center + text: 'Maîtriser le traçage distribué : défis liés au volume de données et approche + de Datadog pour un échantillonnage efficace' +- link: https://www.datadoghq.com/architecture/optimizing-distributed-tracing-best-practices-for-remaining-within-budget-and-capturing-critical-traces/ + tag: Architecture Center + text: 'Optimiser le traçage distribué : bonnes pratiques pour respecter le budget + et capturer les traces critiques' title: Paramètres d'ingestion --- {{< img src="tracing/apm_lifecycle/ingestion_sampling_rules.png" style="width:100%; background:none; border:none; box-shadow:none;" alt="Règles d'échantillonnage d'ingestion" >}} -Les contrôles d'ingestion affectent les traces envoyées par vos applications à Datadog. [Les métriques APM][1] sont toujours calculées sur la base de toutes les traces et ne sont pas impactées par les contrôles d'ingestion. +Les contrôles d'ingestion affectent les traces envoyées par vos applications à Datadog. Les [métriques APM][1] sont toujours calculées sur la base de toutes les traces et ne sont pas affectées par les contrôles d'ingestion. -La page de contrôle d'ingestion offre une visibilité sur la configuration d'ingestion de vos applications et services. Depuis la [page de contrôle d'ingestion][2] : +La page Ingestion Control offre une visibilité sur la configuration d'ingestion de vos applications et services. Depuis la [page Ingestion Control][2] : -- Obtenez une visibilité sur la configuration d'ingestion au niveau du service. -- Ajustez les taux d'échantillonnage des traces pour les services ou points de terminaison à fort débit afin de mieux gérer le budget d'ingestion. -- Ajustez les taux d'échantillonnage des traces pour les services ou points de terminaison à faible débit et au trafic rare afin d'augmenter la visibilité. +- Obtenez une visibilité sur la configuration d'ingestion au niveau de vos services. +- Ajustez les taux d'échantillonnage des traces pour les services ou endpoints à haut débit afin de mieux gérer le budget d'ingestion. +- Ajustez les taux d'échantillonnage des traces pour les services ou endpoints à faible débit ou à trafic rare afin d'accroître la visibilité. - Comprenez quels [mécanismes d'ingestion][11] sont responsables de l'échantillonnage de la plupart de vos traces. -- Enquêtez et agissez sur les problèmes potentiels de configuration d'ingestion, tels que des ressources CPU ou RAM limitées pour l'Agent. +- Enquêtez sur les problèmes potentiels de configuration d'ingestion et agissez en conséquence, tels que des ressources CPU ou RAM limitées pour l'Agent. -{{< img src="tracing/trace_indexing_and_ingestion/ingestion_control_page.png" style="width:100%;" alt="Aperçu de la page de contrôle d'ingestion" >}} +{{< img src="tracing/trace_indexing_and_ingestion/ingestion_control_page.png" style="width:100%;" alt="Vue d'ensemble de la page Ingestion Control" >}} ## Comprendre votre configuration d'ingestion {#understanding-your-ingestion-configuration} -Utilisez les données dans l'en-tête de contrôle d'ingestion pour surveiller votre ingestion de traces. L'en-tête affiche la quantité totale de données ingérées au cours de la dernière heure, votre utilisation mensuelle estimée et le pourcentage de votre limite d'ingestion mensuelle allouée, calculé sur la base de votre infrastructure APM active (telles que les hôtes, les tâches Fargate et les fonctions sans serveur). +Utilisez les données de l'en-tête de contrôle de l'ingestion pour surveiller l'ingestion de vos traces. L'en-tête affiche la quantité totale de données ingérées au cours de la dernière heure, votre utilisation mensuelle estimée et le pourcentage de votre limite d'ingestion mensuelle allouée, calculé en fonction de votre infrastructure APM active (telle que les hosts, les tâches Fargate et les fonctions serverless). -Si l'utilisation mensuelle est inférieure à `100%`, les données ingérées projetées s'inscrivent dans votre allotissement mensuel. Une valeur d'utilisation mensuelle supérieure à `100%` signifie que les données ingérées mensuellement devraient dépasser votre allotissement mensuel. +Si l'utilisation mensuelle est inférieure à `100%`, les données ingérées projetées tiennent dans votre allocation mensuelle. Une valeur d'utilisation mensuelle supérieure à `100%` signifie que les données ingérées mensuelles devraient dépasser votre allocation mensuelle. ### Niveaux d'ingestion par service {#ingestion-levels-by-service} Le tableau des services fournit des informations sur les volumes ingérés et les paramètres d'ingestion pour chaque service : Type -: Le type de service: service web, base de données, cache, navigateur, etc... +: Le type de service: service web, base de données, cache, navigateur, etc. Name -: Le nom de chaque service envoyant des traces à Datadog. Le tableau contient des services racines et non racines pour lesquels des données ont été ingérées au cours de la dernière heure. +: Le nom de chaque service envoyant des traces à Datadog. Le tableau contient les services racines et non racines pour lesquels des données ont été ingérées au cours de la dernière heure. Traces ingérées/s : Nombre moyen de traces par seconde ingérées à partir du service au cours de la dernière heure. @@ -53,45 +61,45 @@ Octets ingérés/s : Nombre moyen d'octets par seconde ingérés pour le service au cours de la dernière heure. Octets en aval/s -: Nombre moyen d'octets par seconde ingérés pour lesquels le service _prend la décision d'échantillonnage_. Cela inclut les octets de tous les spans des services en aval dans la pile d'appels qui suivent la décision prise au début de la trace. Les données de cette colonne sont basées sur la `sampling_service` dimension, définie sur les `datadog.estimated_usage.apm.ingested_bytes` métriques. Pour plus d'informations, lisez [les métriques d'utilisation de l'APM][15]. +: Nombre moyen d'octets par seconde ingérés pour lesquels le service _prend la décision d'échantillonnage_. Cela inclut les octets de tous les spans des services en aval dans la pile d'appels qui suivent la décision prise au début de la trace. Les données de cette colonne sont basées sur la dimension `sampling_service`, définie sur les métriques `datadog.estimated_usage.apm.ingested_bytes`. Pour plus d'informations, consultez [Métriques d'utilisation APM][15]. Répartition du trafic -: Une répartition détaillée du trafic échantillonné et non échantillonné pour les traces à partir du service. Voir [Répartition du trafic](#traffic-breakdown) pour plus d'informations. +: Une répartition détaillée du trafic échantillonné et non échantillonné pour les traces commençant à partir du service. Voir [Répartition du trafic](#traffic-breakdown) pour plus d'informations. -Configuration d'ingestion -: Montre `Automatic` si le [mécanisme d'échantillonnage basé sur l'en-tête par défaut][4] de l'Agent s'applique. Si l'ingestion a été configurée avec [des règles d'échantillonnage de traces][8], le service est marqué comme `Configured` ; une étiquette `Local` est définie lorsque la règle d'échantillonnage est appliquée à partir de la configuration dans le SDK, une étiquette `Remote` est définie lorsque la règle d'échantillonnage est appliquée à distance, depuis l'UI. Pour plus d'informations sur la configuration de l'ingestion pour un service, consultez [comment modifier le taux d'ingestion par défaut](#configure-the-service-ingestion-rate). +Configuration de l'ingestion +: Indique `Automatic` si le [default head-based sampling mechanism][4] de l'Agent s'applique. Si l'ingestion a été configurée avec des [trace sampling rules][8], le service est marqué comme `Configured` ; une étiquette `Local` est définie lorsque la règle d'échantillonnage est appliquée à partir de la configuration dans le SDK, une étiquette `Remote` est définie lorsque la règle d'échantillonnage est appliquée à distance, depuis l'interface utilisateur. Pour plus d'informations sur la configuration de l'ingestion pour un service, lisez la section sur la [modification du taux d'ingestion par défaut](#configure-the-service-ingestion-rate). Infrastructure -: Hôtes, conteneurs et fonctions sur lesquels le service est en cours d'exécution. +: hosts, conteneurs et fonctions sur lesquels le service s'exécute. Statut de service -: Montre `Limited Resource` lorsque certains spans sont abandonnés en raison de l'Agent Datadog atteignant les limites de CPU ou de RAM définies [dans sa configuration][9], `Legacy Setup` lorsque certains spans sont ingérés via le [mécanisme d'App Analytics hérité][7], ou `OK` autrement. +: Affiche `Limited Resource` lorsque certains spans sont abandonnés car le Datadog Agent atteint les limites de CPU ou de RAM définies [dans sa configuration][9], `Legacy Setup` lorsque certains spans sont ingérés via l'ancien [App Analytics mechanism][7], ou `OK` sinon. -Filtrez la page par environnement, configuration et statut pour afficher les services pour lesquels vous devez agir. Pour réduire le volume global d'ingestion, triez le tableau par la colonne `Downstream Bytes/s` pour afficher les services responsables de la plus grande part de votre ingestion. +Filtrez la page par environnement, configuration et statut pour afficher les services pour lesquels vous devez effectuer une action. Pour réduire le volume d'ingestion global, triez le tableau par la colonne `Downstream Bytes/s` pour afficher les services responsables de la plus grande part de votre ingestion. -**Remarque** : Le tableau est alimenté par les [métriques d'utilisation][10] `datadog.estimated_usage.apm.ingested_spans` et `datadog.estimated_usage.apm.ingested_bytes`. Ces métriques sont étiquetées par `service`, `env` et `ingestion_reason`. +**Remarque** : Le tableau est alimenté par les [métriques d'utilisation][10] `datadog.estimated_usage.apm.ingested_spans` et `datadog.estimated_usage.apm.ingested_bytes`. Ces métriques sont taguées par `service`, `env` et `ingestion_reason`. #### Répartition du trafic {#traffic-breakdown} -La colonne Répartition du trafic décompose la destination de toutes les traces à partir du service. Elle vous donne une estimation de la part de trafic qui est ingérée et abandonnée, ainsi que des raisons pour lesquelles cela se produit. +La colonne Répartition du trafic détaille la destination de toutes les traces commençant à partir du service. Elle vous donne une estimation de la part du trafic qui est ingérée et abandonnée, et pour quelles raisons. -{{< img src="tracing/trace_indexing_and_ingestion/service_traffic_breakdown.png" style="width:100%;" alt="Répartition du trafic d'ingestion des traces" >}} +{{< img src="tracing/trace_indexing_and_ingestion/service_traffic_breakdown.png" style="width:100%;" alt="Répartition du trafic de l'ingestion de traces" >}} Les données détaillées sont composées des parties suivantes : -- **Traces complètes ingérées** (bleu) : Le pourcentage de traces qui ont été ingérées par Datadog. -- **Traces complètes non retenues** (gris) : Le pourcentage de traces qui n'ont pas été ingérées par Datadog. Certaines traces peuvent être abandonnées pour les raisons suivantes : +- {{< ui >}}Complete traces ingested{{< /ui >}} (bleu) : Le pourcentage de traces qui ont été ingérées par Datadog. +- {{< ui >}}Complete traces not retained{{< /ui >}} (gris) : Le pourcentage de traces qui n'ont pas été ingérées par Datadog. Certaines traces peuvent être abandonnées car : - 1. Par défaut, l'[Agent définit automatiquement un taux d'échantillonnage][4] sur les services, en fonction du trafic du service. - 2. Le service est configuré pour ingérer un certain pourcentage de traces en utilisant [règles d'échantillonnage][8]. + 1. Par défaut, [Agent automatically sets a sampling rate][4] sur les services, en fonction du trafic du service. + 2. Le service est configuré pour ingérer un certain pourcentage de traces à l'aide de [sampling rules][8]. -- **Traces complètes abandonnées par le limiteur de taux SDK** (orange) : Lorsque vous choisissez de définir manuellement le taux d'ingestion du service en pourcentage avec des règles d'échantillonnage de traces, un limiteur de taux est automatiquement activé, réglé par défaut à 100 traces par seconde. Consultez la documentation du [limiteur de taux][8] pour modifier ce taux. +- {{< ui >}}Complete traces dropped by the SDK rate limiter{{< /ui >}} (orange) : Lorsque vous choisissez de définir manuellement le taux d'ingestion du service sous forme de pourcentage avec des règles d'échantillonnage de traces, un limiteur de débit est automatiquement activé, réglé par défaut sur 100 traces par seconde. Consultez la documentation sur le [rate limiter][8] pour modifier ce taux. -- **Traces abandonnées en raison de la limite CPU ou RAM de l'Agent** (rouge) : Ce mécanisme peut abandonner des spans et créer des traces incomplètes. Pour résoudre ce problème, augmentez l'allocation de CPU et de mémoire pour l'infrastructure sur laquelle l'Agent fonctionne. +- {{< ui >}}Traces dropped due to the Agent CPU or RAM limit{{< /ui >}} (rouge) : Ce mécanisme peut abandonner des spans et créer des traces incomplètes. Pour corriger cela, augmentez l'allocation de CPU et de mémoire pour l'infrastructure sur laquelle l'Agent s'exécute. ## Configuration de l'ingestion pour un service {#configuring-ingestion-for-a-service} -Cliquez sur n'importe quel service pour voir le Résumé de l'ingestion du service, qui fournit des informations exploitables et des options de configuration pour gérer l'ingestion des traces de ce service. +Cliquez sur n'importe quel service pour afficher le Service Ingestion Summary, qui fournit des informations exploitables et des options de configuration pour gérer l'ingestion des traces de ce service. ### Configuration de l'ingestion pour un service {#ingestion-configuration-for-a-service} @@ -99,51 +107,51 @@ Cliquez sur n'importe quel service pour voir le Résumé de l'ingestion du servi Le tableau répertorie les taux d'échantillonnage appliqués par ressource du service. -{{< img src="/tracing/trace_indexing_and_ingestion/resource_sampling_rates.png" alt="Table des taux d'échantillonnage par ressource" style="width:100%;">}} +{{< img src="/tracing/trace_indexing_and_ingestion/resource_sampling_rates.png" alt="Tableau des taux d'échantillonnage par ressource" style="width:100%;">}} -- La colonne `Ingested bytes` présente les octets ingérés des spans du service et de la ressource, tandis que la colonne `Downstream bytes` présente les octets ingérés des spans pour lesquels la décision d'échantillonnage est prise à partir de ce service et de cette ressource, y compris les octets des services en aval dans la chaîne d'appels. +- La colonne `Ingested bytes` affiche les octets ingérés à partir des spans du service et de la ressource, tandis que la colonne `Downstream bytes` affiche les octets ingérés à partir des spans où la décision d'échantillonnage est prise à partir de ce service et de cette ressource, y compris les octets provenant des services en aval dans la chaîne d'appel. - La colonne `Configuration` indique où le taux d'échantillonnage de la ressource est appliqué : - - `Automatic` si le [mécanisme d'échantillonnage basé sur l'en-tête par défaut][4] de l'Agent s'applique. - - `Local Configured` si une [règle d'échantillonnage][8] a été définie localement dans le SDK. - - `Remote Configured` si une règle d'échantillonnage à distance a été définie depuis l'interface utilisateur de Datadog. Pour apprendre à configurer des règles d'échantillonnage depuis la page de contrôle d'ingestion, lisez la section sur [la configuration à distance des règles d'échantillonnage](#configure-the-service-ingestion-rates-by-resource). + - `Automatic` si le [default head-based sampling mechanism][4] de l'Agent s'applique. + - `Local Configured` si une [sampling rule][8] a été définie localement dans le SDK. + - `Remote Configured` si une règle d'échantillonnage à distance a été définie depuis l'interface utilisateur Datadog. Pour savoir comment configurer des règles d'échantillonnage depuis la page Ingestion Control, lisez la section sur la [configuration à distance des règles d'échantillonnage](#configure-the-service-ingestion-rates-by-resource). **Remarque** : Si le service ne prend pas de décisions d'échantillonnage, les ressources du service seront regroupées sous la ligne `Resources not making sampling decisions`. -**Remarque** : Sur de courtes périodes (1 à 4 heures), le taux d'échantillonnage effectif peut afficher moins de 100 % même lorsqu'il est configuré à 100 %. C'est un comportement attendu en raison des calculs statistiques qui nécessitent plus de points de données pour converger. Toutes les traces sont toujours capturées correctement. Pour un affichage aussi précis que possible, consultez les taux d'échantillonnage sur des périodes plus longues. +**Remarque** : Sur de courtes périodes (1 à 4 heures), le taux d'échantillonnage effectif peut s'afficher en dessous de 100 %, même lorsqu'il est configuré à 100 %. Il s'agit d'un comportement attendu dû aux calculs statistiques qui nécessitent davantage de points de données pour converger. Toutes les traces sont toujours capturées correctement. Pour un affichage plus précis, consultez les taux d'échantillonnage sur des périodes plus longues. #### Raisons d'ingestion et décideurs d'échantillonnage {#ingestion-reasons-and-sampling-decision-makers} -Explorez la **répartition des raisons d'ingestion** pour voir quels mécanismes sont responsables de l'ingestion de votre service. Chaque raison d'ingestion est liée à un [mécanisme d'ingestion][11] spécifique. Après avoir modifié la configuration d'ingestion de votre service, vous pouvez observer l'augmentation ou la diminution des octets et des intervalles ingérés dans ce graphique de séries temporelles basé sur l'heure passée de données ingérées. +Explorez la {{< ui >}}Ingestion reasons breakdown{{< /ui >}} pour voir quels mécanismes sont responsables de l'ingestion de votre service. Chaque motif d'ingestion est lié à un [ingestion mechanism][11] spécifique. Après avoir modifié votre configuration d'ingestion de service, vous pouvez observer l'augmentation ou la diminution des octets et des spans ingérés dans ce graphique de séries temporelles basé sur la dernière heure de données ingérées. -Si la majeure partie de votre volume d'ingestion de service est due à des décisions prises par des services en amont, examinez le détail de la liste des **décideurs d'échantillonnage**. Par exemple, si votre service n'est pas racine, (ce qui signifie qu'il **ne décide jamais** d'échantillonner des traces), observez tous les services en amont responsables de l'ingestion de votre service non racine. Configurez les services racines en amont pour réduire votre volume d'ingestion global. +Si la majeure partie de votre volume d'ingestion de service est due à des décisions prises par des services en amont, examinez le détail de la top list {{< ui >}}Sampling decision makers{{< /ui >}}. Par exemple, si votre service n'est pas racine (ce qui signifie qu'il **ne décide jamais** d'échantillonner des traces), observez tous les services en amont responsables de l'ingestion de votre service non racine. Configurez les services racine en amont pour réduire votre volume d'ingestion global. -Pour des investigations plus approfondies, utilisez le [Tableau de bord d'utilisation estimée des traces APM][12], qui fournit des informations globales sur l'ingestion ainsi que des graphiques de répartition par `service`, `env` et `ingestion reason`. +Pour des investigations plus approfondies, utilisez le [APM Trace - Estimated Usage Dashboard][12], qui fournit des informations globales sur l'ingestion ainsi que des graphiques de répartition par `service`, `env` et `ingestion reason`. #### Versions de l'Agent et du SDK {#agent-and-sdk-versions} -Voir les **versions de l'Agent et du SDK Datadog** que votre service utilise. Comparez les versions en cours d'utilisation avec les dernières versions publiées pour vous assurer que vous utilisez des Agents et des bibliothèques récents et à jour. +Consultez la {{< ui >}}Datadog Agent and SDK versions{{< /ui >}} que votre service utilise. Comparez les versions utilisées aux dernières versions publiées pour vous assurer que vous exécutez des Agents et des bibliothèques récents et à jour. -{{< img src="tracing/trace_indexing_and_ingestion/agent_tracer_version.png" style="width:90%;" alt="Versions de l'Agent et du SDK" >}} +{{< img src="tracing/trace_indexing_and_ingestion/agent_tracer_version.png" style="width:90%;" alt="Versions d'Agent et du SDK" >}} ### Gestion des taux d'échantillonnage des services {#managing-services-sampling-rates} -Pour contrôler les taux d'échantillonnage d'un service, vous souhaiterez peut-être utiliser : -- **Échantillonnage adaptatif** : Ajustez automatiquement les taux d'échantillonnage pour correspondre à un budget de volume ingéré mensuel configura9. -- **Échantillonnage basé sur les ressources** : Da9finissez manuellement des taux d'a9chantillonnage explicites par ressource. +Pour contrôler les taux d'échantillonnage d'un service, vous pouvez utiliser : +- {{< ui >}}Adaptive sampling{{< /ui >}} : Ajustez automatiquement les taux d'échantillonnage pour correspondre à un budget de volume ingéré mensuel configuré. +- {{< ui >}}Resource-based sampling{{< /ui >}} : Définissez manuellement des taux d'échantillonnage explicites par ressource. -Les configurations pour ces stratégies peuvent être appliquées **à distance** via l'interface utilisateur de Datadog. Cette méthode permet aux modifications de prendre effet immédiatement sans redéployer votre service. Pour **l'échantillonnage basé sur les ressources**, vous avez également la possibilité d'appliquer des configurations **localement** en mettant à jour les fichiers de configuration de votre service et en redéployant. +Les configurations pour ces stratégies peuvent être appliquées {{< ui >}}Remotely{{< /ui >}} via l'interface utilisateur Datadog. Cette méthode permet aux modifications de prendre effet immédiatement sans redéployer votre service. Pour {{< ui >}}Resource-based Sampling{{< /ui >}}, vous avez également la possibilité d'appliquer des configurations **localement** en mettant à jour les fichiers de configuration de votre service et en redéployant. -L'utilisation de **la configuration à distance** pour les taux d'ingestion des services a des exigences spécifiques. +**Remote Configuration** pour les taux d'ingestion de service a des exigences spécifiques. -{{% collapse-content title="Exigences de configuration à distance" level="h4" expanded="false" id="remote-configuration-requirements" %}} +{{% collapse-content title="Exigences de Remote Configuration" level="h4" expanded="false" id="remote-configuration-requirements" %}} -- Agent Datadog [7.41.1][19] ou version supérieure. -- [Configuration à distance][3] activée pour votre Agent. -- `APM Remote Configuration Write` [permissions][20]. Si vous n'avez pas ces permissions, demandez à votre administrateur Datadog de mettre à jour vos permissions dans les paramètres de votre organisation. +- Datadog Agent [7.41.1][19] ou supérieur. +- [Remote Configuration][3] activée pour votre Agent. +- `APM Remote Configuration Write` [permissions][20]. Si vous ne disposez pas de ces permissions, demandez à votre administrateur Datadog de mettre à jour vos permissions depuis les paramètres de votre organisation. -Trouvez ci-dessous la version minimale du SDK requise pour la fonctionnalita9 : +Vous trouverez ci-dessous la version minimale du SDK requise pour cette fonctionnalité : -| Langue | Version minimale requise | +| Langage | Version minimale requise | |----------|--------------------------| | Java | v1.34.0 | | Go | v1.64.0 | @@ -158,91 +166,91 @@ Trouvez ci-dessous la version minimale du SDK requise pour la fonctionnalita9 : #### Échantillonnage adaptatif {#adaptive-sampling} -Utilisez l'échantillonnage adaptatif pour permettre à Datadog de gérer les taux d'échantillonnage des services en votre nom. Spécifiez un volume d'ingestion mensuel cible pour un ou plusieurs services tout en gardant une visibilité sur tous les services et points de terminaison. +Utilisez l'échantillonnage adaptatif pour laisser Datadog gérer les taux d'échantillonnage des services pour vous. Spécifiez un volume d'ingestion mensuel cible pour un ou plusieurs services tout en conservant une visibilité sur tous les services et endpoints. -Pour configurer l'a9chantillonnage adaptatif : +Pour configurer l'échantillonnage adaptatif : -1. Accédez à la page [Contrôle d'Ingestion][2]. -2. Cliquez sur un service pour voir le **Résumé d'Ingestion du Service**. -3. Cliquez sur **Gérer le Taux d'Ingestion**. -4. Choisissez **les taux d'échantillonnage adaptatifs de Datadog** comme stratégie d'échantillonnage de votre service. -5. Cliquez sur **Appliquer**. +1. Accédez à la page [Ingestion Control][2]. +2. Cliquez sur un service pour afficher le {{< ui >}}Service Ingestion Summary{{< /ui >}}. +3. Cliquez sur {{< ui >}}Manage Ingestion Rate{{< /ui >}}. +4. Choisissez {{< ui >}}Datadog adaptive sampling rates{{< /ui >}} comme stratégie d'échantillonnage de votre service. +5. Cliquez sur {{< ui >}}Apply{{< /ui >}}. -
Si l'application de cette configuration à distance est désactivée, assurez-vous que les exigences de Configuration à Distance sont respectées.
+
Si l'application de cette configuration Remote Configuration est désactivée, assurez-vous que les Remote Configuration requirements sont remplies.
-Pour plus d'informations, voir [Échantillonnage Adaptatif][17]. +Pour plus d'informations, consultez [Adaptive Sampling][17]. #### Échantillonnage basé sur les ressources {#resource-based-sampling} Pour configurer des taux d'échantillonnage personnalisés pour le service par nom de ressource : -1. Accédez à la page [Contrôle d'Ingestion][2]. -2. Cliquez sur un service pour voir le **Résumé d'Ingestion du Service**. -3. Cliquez sur **Gérer le taux d'ingestion**. -4. Cliquez sur **Taux d'échantillonnage personnalisés uniquement**. -5. Cliquez sur **Ajouter une nouvelle règle** pour définir les taux d'échantillonnage pour certaines ressources. - **Remarque** : Les règles d'a9chantillonnage utilisent la correspondance de motifs globaux, vous pouvez donc utiliser des caractères génériques (`*`) pour correspondre à plusieurs ressources en même temps. - {{< img src="/tracing/trace_indexing_and_ingestion/sampling_configuration_custom.png" alt="Modal de configuration" style="width:100%;">}} -6. Appliquez la configuration **à distance** ou **localement** : +1. Accédez à la page [Ingestion Control][2]. +2. Cliquez sur un service pour afficher le {{< ui >}}Service Ingestion Summary{{< /ui >}}. +3. Cliquez sur {{< ui >}}Manage Ingestion rate{{< /ui >}}. +4. Cliquez sur {{< ui >}}Custom sampling rates only{{< /ui >}}. +5. Cliquez sur {{< ui >}}Add new rule{{< /ui >}} pour définir les taux d'échantillonnage pour certaines ressources. + **Remarque** : Les règles d'échantillonnage utilisent la correspondance de modèles glob, vous pouvez donc utiliser des caractères génériques (`*`) pour faire correspondre plusieurs ressources en même temps. + {{< img src="/tracing/trace_indexing_and_ingestion/sampling_configuration_custom.png" alt="Fenêtre modale de configuration" style="width:100%;">}} +6. Appliquez la configuration {{< ui >}}Remotely{{< /ui >}} ou {{< ui >}}Locally{{< /ui >}} : {{< tabs >}} -{{% tab "À distance" %}} +{{% tab "Remotely" %}} -Cette option applique la configuration en utilisant la Configuration à distance, vous **n'avez pas besoin** de redéployer le service pour que le changement prenne effet. Vous pouvez observer les changements de configuration depuis le [Live Search Explorer][100]. +Cette option applique la configuration à l'aide de Remote Configuration, vous **n'avez donc pas besoin** de redéployer le service pour que la modification prenne effet. Vous pouvez observer les modifications de configuration depuis le [Live Search Explorer][100]. -Cliquez sur **Appliquer** pour enregistrer la configuration. +Cliquez sur {{< ui >}}Apply{{< /ui >}} pour enregistrer la configuration. -Les ressources qui ont été configurées à distance s'affichent comme `Configured Remote` dans la colonne **Configuration**. +Les ressources configurées à distance s'affichent sous la forme `Configured Remote` dans la colonne {{< ui >}}Configuration{{< /ui >}}. -
Si l'application de cette configuration à distance est désactivée, assurez-vous que les exigences de Configuration à distance sont respectées.
+
Si l'application de cette configuration Remote Configuration est désactivée, assurez-vous que les Remote Configuration requirements sont remplies.
[100]: /fr/tracing/trace_explorer/?tab=listview#live-search-for-15-minutes {{% /tab %}} -{{% tab "Localement" %}} +{{% tab "Locally" %}} -Cette option génère une configuration que vous devez appliquer manuellement. +Cette option génère une configuration que vous pouvez appliquer manuellement. 1. Appliquez la configuration générée à votre service. - **Remarque** : La valeur du nom du service est sensible à la casse. Elle doit correspondre à la casse de votre nom de service. + **Remarque** : La valeur du nom du service est sensible à la casse. Elle doit correspondre à la casse du nom de votre service. 1. Redéployez le service. -1. Confirmez que le nouveau pourcentage a été appliqué en consultant la colonne **Répartition du trafic**. Les ressources qui ont été configurées localement s'affichent comme `Configured Local` dans la colonne **Configuration**. +1. Confirmez que le nouveau pourcentage a été appliqué en consultant la colonne {{< ui >}}Traffic Breakdown{{< /ui >}}. Les ressources qui ont été configurées localement s'affichent sous la forme `Configured Local` dans la colonne {{< ui >}}Configuration{{< /ui >}}. {{% /tab %}} {{< /tabs >}} -## Gestion de la configuration d'ingestion de l'Agent Datadog {#managing-datadog-agent-ingestion-configuration} +## Gestion de la configuration de l'ingestion du Datadog Agent {#managing-datadog-agent-ingestion-configuration} -Cliquez sur **Configurer l'ingestion de l'Agent Datadog** pour gérer les taux d'échantillonnage par défaut basés sur l'en-tête, l'échantillonnage des erreurs et l'échantillonnage rare. +Cliquez sur {{< ui >}}Configure Datadog Agent Ingestion{{< /ui >}} pour gérer les taux d'échantillonnage par défaut (head-based), l'échantillonnage des erreurs et l'échantillonnage des traces rares. -{{< img src="tracing/trace_indexing_and_ingestion/agent_level_configurations_modal.png" style="width:70%;" alt="Modal de configuration au niveau de l'Agent" >}} +{{< img src="tracing/trace_indexing_and_ingestion/agent_level_configurations_modal.png" style="width:70%;" alt="Fenêtre modale de configuration au niveau de l'Agent" >}} -- **[Échantillonnage basé sur l'en-tête][4]** : Lorsque aucune règle d'échantillonnage n'est définie pour un service, l'Agent Datadog calcule automatiquement les taux d'échantillonnage à appliquer pour vos services, visant **10 traces par seconde par Agent**. Changez ce nombre cible de traces dans Datadog, ou définissez `DD_APM_TARGET_TPS` localement au niveau de l'agent. -- **[Échantillonnage des erreurs][5]** : Pour les traces non capturées par l'échantillonnage basé sur l'en-tête, l'Agent Datadog capture les traces d'erreur locales **jusqu'à 10 traces par seconde par Agent**. Changez ce nombre cible de traces dans Datadog, ou définissez `DD_APM_ERROR_TPS` localement au niveau de l'agent. -- **[Échantillonnage des traces rares][6]** : Pour les traces non capturées par l'échantillonnage basé sur l'en-tête, l'Agent Datadog capture les traces rares locales **jusqu'à 5 traces par seconde par Agent**. Ce paramètre est désactivé par défaut. Activez la collecte de traces rares dans Datadog, ou définissez `DD_APM_ENABLE_RARE_SAMPLER` localement au niveau de l'agent. +- [{{< ui >}}Head-based Sampling{{< /ui >}}][4] : Lorsqu'aucune règle d'échantillonnage n'est définie pour un service, le Datadog Agent calcule automatiquement les taux d'échantillonnage à appliquer pour vos services, en ciblant **10 traces par seconde par Agent**. Modifiez ce nombre cible de traces dans Datadog, ou définissez `DD_APM_TARGET_TPS` localement au niveau de l'Agent. +- [{{< ui >}}Error Spans Sampling{{< /ui >}}][5]: Pour les traces non capturées par l'échantillonnage head-based, le Datadog Agent capture les traces d'erreur locales **jusqu'à 10 traces par seconde par Agent**. Modifiez ce nombre cible de traces dans Datadog, ou définissez `DD_APM_ERROR_TPS` locally au niveau de l'Agent. +- [{{< ui >}}Rare Spans Sampling{{< /ui >}}][6]: Pour les traces non capturées par l'échantillonnage head-based, le Datadog Agent capture les traces rares locales **jusqu'à 5 traces par seconde par Agent**. Ce paramètre est désactivé par défaut. Activez la collecte des traces rares dans Datadog, ou définissez `DD_APM_ENABLE_RARE_SAMPLER` locally au niveau de l'Agent. -Avec la configuration à distance, vous n'avez pas besoin de redémarrer l'Agent pour mettre à jour ces paramètres. Cliquez sur `Apply` pour enregistrer les modifications de configuration, et la nouvelle configuration prend effet immédiatement. La configuration à distance pour les paramètres d'échantillonnage de l'Agent est disponible si vous utilisez la version de l'Agent [7.42.0][13] ou supérieure. +Grâce à Remote Configuration, vous n'avez pas besoin de redémarrer l'Agent pour mettre à jour ces paramètres. Cliquez sur `Apply` pour enregistrer les modifications de configuration, et la nouvelle configuration prend effet immédiatement. La configuration à distance pour les paramètres d'échantillonnage de l'Agent est disponible si vous utilisez la version [7.42.0][13] ou supérieure de l'Agent. -**Remarque** : La section `Other Ingestion Reasons` (grise) du graphique en secteurs représente d'autres raisons d'ingestion qui _ne sont pas configurables_ au niveau de l'Agent Datadog. +**Remarque** : La section `Other Ingestion Reasons` (grise) du graphique en secteurs représente d'autres raisons d'ingestion qui _ne sont pas configurables_ au niveau du Datadog Agent. -**Remarque** : Les paramètres configurés à distance ont la priorité sur les configurations locales telles que les variables d'environnement et `datadog.yaml` la configuration. +**Remarque** : Les paramètres configurés à distance prévalent sur les configurations locales telles que les variables d'environnement et la configuration `datadog.yaml`. ## Priorité des règles d'échantillonnage {#sampling-rules-precedence} -Si des règles d'échantillonnage sont définies à plusieurs endroits, les règles de priorité suivantes s'appliquent dans l'ordre, où les règles qui apparaissent en premier sur la liste peuvent remplacer les règles de priorité inférieure : +Si des règles d'échantillonnage sont définies à plusieurs emplacements, les règles de priorité suivantes s'appliquent dans l'ordre, les règles apparaissant en premier dans la liste pouvant remplacer celles de priorité inférieure : -1. Règles d'échantillonnage configurées à distance, définies par [échantillonnage basé sur les ressources](#configure-the-service-ingestion-rates-by-resource) +1. Règles d'échantillonnage configurées à distance, définies via [l'échantillonnage basé sur les ressources](#configure-the-service-ingestion-rates-by-resource) 1. [Règles d'échantillonnage adaptatif][17] 1. [Règles d'échantillonnage configurées localement][8] (`DD_TRACE_SAMPLING_RULES`) 1. [Taux d'échantillonnage global configuré à distance][8] 1. [Taux d'échantillonnage global configuré localement][8] (`DD_TRACE_SAMPLE_RATE`) -1. [Taux contrôlés indirectement par les paramètres de l'agent](#managing-datadog-agent-ingestion-configuration) à distance ou localement (`DD_APM_TARGET_TPS`) +1. [Taux provenant du trace agent contrôlés indirectement avec les paramètres de l'Agent](#managing-datadog-agent-ingestion-configuration) à distance ou localement (`DD_APM_TARGET_TPS`) -Pour le dire autrement, Datadog utilise les règles de priorité suivantes : -- Paramètres du traceur > Paramètres de l'agent -- Règles d'échantillonnage > Taux d'échantillonnage global -- À distance > Local +En d'autres termes, Datadog utilise les règles de priorité suivantes : +- Tracer settings > Agent settings +- Sampling rules > Global sampling rate +- Remote > Local -## Lectures complémentaires {#further-reading} +## Pour aller plus loin {#further-reading} {{< partial name="whats-next/whats-next.html" >}} diff --git a/hugo/content/ja/agent/logs/_index.md b/hugo/content/ja/agent/logs/_index.md index edb0a243259..fbe9743c742 100644 --- a/hugo/content/ja/agent/logs/_index.md +++ b/hugo/content/ja/agent/logs/_index.md @@ -2,22 +2,22 @@ description: Datadog Agent を使用してログを Datadog に送信します further_reading: - link: agent/logs/agent_tags/ - tag: よくあるご質問 + tag: ドキュメント text: Agent タグは自動的にログに追加されます - link: agent/logs/advanced_log_collection/#filter-logs - tag: よくあるご質問 + tag: ドキュメント text: Datadog に送信されるログの絞り込み - link: agent/logs/advanced_log_collection/#scrub-sensitive-data-from-your-logs - tag: よくあるご質問 + tag: ドキュメント text: ログの機密データのスクラビング - link: agent/logs/advanced_log_collection/#multi-line-aggregation - tag: よくあるご質問 + tag: ドキュメント text: 複数行のログの集約 - link: agent/logs/advanced_log_collection/#tail-directories-using-wildcards - tag: よくあるご質問 + tag: ドキュメント text: ワイルドカードを使用したディレクトリの追跡 - link: agent/logs/advanced_log_collection/#global-processing-rules - tag: よくあるご質問 + tag: ドキュメント text: グローバルな処理ルール title: ホスト Agent ログの収集 --- @@ -38,7 +38,7 @@ logs_config: force_use_http: true {{< /code-block >}} -使用可能なすべての構成オプションの詳細については、[サンプル config_template.yaml ファイル][6] を参照してください。 +利用可能なすべての設定オプションについては、お使いのオペレーティングシステムの[Agent設定ファイルの例][6]を参照してください。
Agent v6.19/v7.19 以降、使用されるデフォルトのトランスポートは HTTPS トランスポートです。詳細については、Agent トランスポート.
を参照してください。 @@ -62,6 +62,8 @@ Datadog Agent v6 は、収集したログをファイル、ネットワーク (T 権限エラーがある場合は、[ログファイルを追跡する権限の問題][10] を参照してトラブルシューティングを行ってください。 +各ホスト上のファイルを編集することなく、複数のAgentにカスタムログ収集設定を一括でデプロイするには、Fleet Automationを使用した[カスタムログの設定][15]を参照してください。 + 以下に、カスタムログ収集設定の例を示します。 {{< tabs >}} @@ -256,7 +258,7 @@ file および journald テーラータイプの両方で、`end` または `beg [3]: /ja/containers/kubernetes/log/ [4]: /ja/containers/docker/log/ [5]: /ja/agent/configuration/agent-configuration-files/ -[6]: https://github.com/DataDog/datadog-agent/blob/master/pkg/config/config_template.yaml +[6]: https://github.com/DataDog/datadog-agent/tree/main/pkg/config/example [7]: /ja/agent/logs/log_transport/ [8]: /ja/agent/configuration/agent-commands/#restart-the-agent [9]: /ja/agent/configuration/agent-commands/#agent-status-and-information @@ -264,4 +266,5 @@ file および journald テーラータイプの両方で、`end` または `beg [11]: /ja/tracing/ [12]: /ja/getting_started/tagging/unified_service_tagging [13]: /ja/metrics/custom_metrics/#overview -[14]: /ja/getting_started/tagging/ \ No newline at end of file +[14]: /ja/getting_started/tagging/ +[15]: /ja/agent/fleet_automation/configure_logs/ \ No newline at end of file diff --git a/hugo/content/ja/agent/supported_platforms/linux.md b/hugo/content/ja/agent/supported_platforms/linux.md index 616cedae8a6..031506064ab 100644 --- a/hugo/content/ja/agent/supported_platforms/linux.md +++ b/hugo/content/ja/agent/supported_platforms/linux.md @@ -25,19 +25,19 @@ aliases: - /ja/agent/basic_agent_usage/linux/ further_reading: - link: /logs/ - tag: よくあるご質問 + tag: ドキュメント text: ログの収集 - link: /infrastructure/process/ - tag: よくあるご質問 + tag: ドキュメント text: プロセスの収集 - link: /tracing/ - tag: よくあるご質問 + tag: ドキュメント text: トレースの収集 - link: /agent/architecture/#agent-architecture - tag: よくあるご質問 + tag: ドキュメント text: Agent のアーキテクチャを詳しく見る - link: /agent/configuration/network#configure-ports - tag: よくあるご質問 + tag: ドキュメント text: インバウンドポートの構成 platform: Linux title: Linux @@ -59,7 +59,7 @@ Datadog Agent 構成ファイルは `/etc/datadog-agent/datadog.yaml` にあり - `proxy`: アウトバウンドトラフィック用の HTTP/HTTPS プロキシエンドポイント ([Datadog Agent プロキシ構成][8] を参照) - デフォルトのタグ、ログレベル、および Datadog 構成 -`/etc/datadog-agent/datadog.yaml.example` にある完全にコメント化されたリファレンスファイルには、比較やコピーアンドペーストに使用できるすべてのオプションがリストされています。または、サンプルの `config_template.yaml` ファイルで、利用可能なすべての構成オプションを参照してください。 +`/etc/datadog-agent/datadog.yaml.example` にある完全にコメント化されたリファレンスファイルには、比較やコピーアンドペーストに使用できるすべてのオプションがリストされています。または、GitHubにある[Linux用Agent設定ファイルの例][11]をご覧ください。 ### インテグレーションファイル {#integration-files} インテグレーション用の構成ファイルは `/etc/datadog-agent/conf.d/` にあります。各インテグレーションにサブディレクトリ `.d/` があり、次のものが含まれています。 @@ -161,4 +161,5 @@ Agent には `/opt/datadog-agent/embedded/` に埋め込まれた Python 環境 [7]: https://app.datadoghq.com/organization-settings/api-keys [8]: https://docs.datadoghq.com/ja/agent/configuration/proxy/ [9]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/ -[10]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/linux \ No newline at end of file +[10]: /ja/tracing/trace_collection/automatic_instrumentation/single-step-apm/linux +[11]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/example/datadog-agent_linux.yaml.example \ No newline at end of file diff --git a/hugo/content/ja/agent/supported_platforms/windows.md b/hugo/content/ja/agent/supported_platforms/windows.md index 586f8dae9fb..a7355955974 100644 --- a/hugo/content/ja/agent/supported_platforms/windows.md +++ b/hugo/content/ja/agent/supported_platforms/windows.md @@ -36,11 +36,11 @@ title: Windows このページでは、Datadog Agent for Windows の基本的な機能について概説します。まだ Agent をインストールしていない場合は、下記のインストール手順を参照するか、[アプリ内の指示に従ってください][1]。 -サポートされている Windows バージョンの全一覧は、[サポートされているプラットフォーム][15]を参照してください。 +サポートされている Windows バージョンの全一覧は、[サポートされているプラットフォーム][15] を参照してください。 ## インストール {#installation} -Windows ホストに Datadog Agent をインストールするには、[Fleet Automation 内のガイド付きアプリ内フロー][16]に従い、インストールコマンドをコピーして実行してください。Datadog Agent は `ddagentuser` の下で実行されます。詳細については、[Datadog Windows Agent ユーザー][17]のドキュメントを参照してください。 +Windows ホストに Datadog Agent をインストールするには、[Fleet Automation 内のガイド付きアプリ内フロー][16] に従い、インストールコマンドをコピーして実行してください。Datadog Agent は `ddagentuser` の下で実行されます。詳細については、[Datadog Windows Agent ユーザー][17] のドキュメントを参照してください。 {{< img src="/agent/basic_agent_usage/windows_img2_july_25.png" alt="Windows ホストの Datadog Agent のアプリ内インストール手順。" style="width:90%;">}} @@ -52,9 +52,9 @@ Windows ホストに Datadog Agent をインストールするには、[Fleet Au
Agent のデフォルトのインストール先は %ProgramFiles%\Datadog\Datadog Agentです。カスタムインストール場所を使用する場合は、Datadog ファイルを収容する Datadog サブディレクトリを指定してください。
-1. [Datadog Agent インストーラー][400]をダウンロードし、最新バージョンの Agent をインストールします。 +1. [Datadog Agent インストーラー][400] をダウンロードし、最新バージョンの Agent をインストールします。 2. `datadog-agent-7-latest.amd64.msi`を開いてインストーラーを実行します。プロンプトが表示されたら、管理者の資格情報を入力します。 -3. プロンプトに従ってライセンス契約に同意し、[Datadog API キー][500]を入力します。 +3. プロンプトに従ってライセンス契約に同意し、[Datadog API キー][500] を入力します。 インストールが終了したら、オプションから Datadog Agent Manager を起動できます。 @@ -112,7 +112,7 @@ Windows に Agent をインストールする際、下記の各構成オプシ メイン Agent 構成ファイルは `C:\ProgramData\Datadog\datadog.yaml` にあります。このファイルは、API キー、選択した Datadog サイト、プロキシパラメーター、ホストタグ、ログレベルなどのホスト全体の設定に使用されます。 -同じディレクトリに `datadog.yaml.example` ファイルもあります。このファイルには、使用可能なすべての構成オプションを示すリファレンスがコメントとしてフルで付けられており、特定の構成を参照したりコピーしたりするのに便利です。 +同じディレクトリに `datadog.yaml.example` ファイルもあります。このファイルには、使用可能なすべての構成オプションを示すリファレンスがコメントとしてフルで付けられており、特定の構成を参照したりコピーしたりするのに便利です。または、GitHub上の[Windows用Agent設定ファイルの例][19]をご覧ください。 インテグレーション用の構成ファイルは @@ -177,7 +177,7 @@ Windows で Agent をアンインストールする方法は 2 つあります ### プログラムの追加と削除 {#add-or-remove-programs} -1. **CTRL**キーと**Esc**キーを押すか、Windowsキーで Windows Search を実行します。 +1. **CTRL**キーと**Esc**キーを押すか、Windows キーで Windows Search を実行します。 1. `add`を検索し、{{< ui >}}Add or remove programs{{< /ui >}}をクリックします。 1. `Datadog Agent`を検索し、{{< ui >}}Uninstall{{< /ui >}}をクリックします。 @@ -194,7 +194,7 @@ start-process msiexec -Wait -ArgumentList ('/log', 'C:\uninst.log', '/q', '/x', ## トラブルシューティング {#troubleshooting} -トラブルシューティング手順については、[Agent トラブルシューティングのドキュメント][18]を参照してください。 +トラブルシューティング手順については、[Agent トラブルシューティングのドキュメント][18] を参照してください。 ### Agent のステータスと情報 {#agent-status-and-information} @@ -203,7 +203,7 @@ Agent が実行中であることを確認するには、サービスパネル Agent の状態に関する情報をさらに受け取るには、次のようにして Datadog Agent Manager を起動します。 -* Datadog Agentのシステムトレイアイコンを右クリックし、{{< ui >}}Configure{{< /ui >}} を選択します。または +* Datadog Agent のシステムトレイアイコンを右クリックし、{{< ui >}}Configure{{< /ui >}} を選択します。または * **管理者特権 (管理者として実行)** コマンドラインから `launch-gui` コマンドを実行します - PowerShell: `& "" launch-gui` - cmd: `"" launch-gui` @@ -245,17 +245,17 @@ cmd.exe では、次のようにします。 また、インテグレーションを変更するたびに、Datadog サービスを再起動する必要があります。これは services.msc または UI サイドバーから行うことができます。 -サービスについて、Datadog はメトリクスを追跡せず、可用性のみを追跡します。(メトリクスの場合は、[Process](#monitoring-windows-processes) または [WMI][7] 統合を使用してください)。モニターを設定するには、[インテグレーションモニタータイプ][8]を選択し、{{< ui >}}Windows Service{{< /ui >}} を検索します。{{< ui >}}Integration Status{{< /ui >}} > {{< ui >}}Pick Monitor Scope{{< /ui >}} から、監視するサービスを選択します。 +サービスについて、Datadog はメトリクスを追跡せず、可用性のみを追跡します。(メトリクスの場合は、[Process](#monitoring-windows-processes) または [WMI][7] 統合を使用してください)。モニターを設定するには、[インテグレーションモニタータイプ][8] を選択し、{{< ui >}}Windows Service{{< /ui >}} を検索します。{{< ui >}}Integration Status{{< /ui >}} > {{< ui >}}Pick Monitor Scope{{< /ui >}} から、監視するサービスを選択します。 ### Windows のシステム負荷のモニタリング {#monitoring-system-load-for-windows} Datadog Agent は、デフォルトで多数のシステムメトリクスを収集します。最も一般的に使用されるシステムメトリクスは `system.load.*` ですが、これらのメトリクスは **Unix** 特有です。 -Windows は `system.load.*` メトリクスを提供していませんが、デフォルトで利用可能な同等のオプションは `system.proc.queue.length` です。このメトリクスは、実行待ちのプロセッサ準備キューで遅延として観察されたスレッドの数を示します。 +Windows は `system.load.*` メトリクスを提供していませんが、デフォルトで利用可能な同等のオプションは `system.proc.queue.length` です。このメトリクスは、実行待ちのプロセッサー準備キューで遅延として観察されたスレッドの数を示します。 ### Windows プロセスの監視 {#monitoring-windows-processes} -[ライブプロセスのモニタリング][9]を使用して Windows プロセスをモニターできます。これを Windows で有効にするには、次のパラメーターを true に設定することにより、[Agent メイン構成ファイル][10]を編集します。 +[ライブプロセスのモニタリング][9] を使用して Windows プロセスをモニターできます。これを Windows で有効にするには、次のパラメーターを true に設定することにより、[Agent メイン構成ファイル][10] を編集します。 `datadog.yaml`: @@ -264,7 +264,7 @@ process_config: enabled: "true" ``` -構成が完了したら、[Agent を再起動][11]します。 +構成が完了したら、[Agent を再起動][11] します。 ## 参考資料 {#further-reading} @@ -289,5 +289,6 @@ process_config: [16]: https://app.datadoghq.com/fleet/install-agent/latest?platform=windows [17]: /ja/agent/faq/windows-agent-ddagent-user/ [18]: https://docs.datadoghq.com/ja/agent/troubleshooting/ +[19]: https://github.com/DataDog/datadog-agent/blob/main/pkg/config/example/datadog-agent_windows.yaml.example [400]: https://windows-agent.datadoghq.com/datadog-agent-7-latest.amd64.msi [500]: https://app.datadoghq.com/organization-settings/api-keys \ No newline at end of file diff --git a/hugo/content/ja/api/latest/agent-observability/delete-agent-observability-experiments/index.md b/hugo/content/ja/api/latest/agent-observability/delete-agent-observability-experiments/index.md new file mode 100644 index 00000000000..b367d2ceeca --- /dev/null +++ b/hugo/content/ja/api/latest/agent-observability/delete-agent-observability-experiments/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability 実験を削除してください。 +--- diff --git a/hugo/content/ja/api/latest/agent-observability/list-agent-observability-dataset-versions/index.md b/hugo/content/ja/api/latest/agent-observability/list-agent-observability-dataset-versions/index.md new file mode 100644 index 00000000000..a89d04bd960 --- /dev/null +++ b/hugo/content/ja/api/latest/agent-observability/list-agent-observability-dataset-versions/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observabilityデータセットのバージョンを一覧表示する +--- diff --git a/hugo/content/ja/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md b/hugo/content/ja/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md new file mode 100644 index 00000000000..5b790a3cfb5 --- /dev/null +++ b/hugo/content/ja/api/latest/agent-observability/list-agent-observability-experiment-spans-v1/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability 実験スパンを一覧表示する (v1) +--- diff --git a/hugo/content/ja/api/latest/agent-observability/restore-an-agent-observability-dataset-version/index.md b/hugo/content/ja/api/latest/agent-observability/restore-an-agent-observability-dataset-version/index.md new file mode 100644 index 00000000000..95dc8dc67f8 --- /dev/null +++ b/hugo/content/ja/api/latest/agent-observability/restore-an-agent-observability-dataset-version/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability データセットのバージョンを復元する +--- diff --git a/hugo/content/ja/api/latest/agent-observability/search-agent-observability-spans/index.md b/hugo/content/ja/api/latest/agent-observability/search-agent-observability-spans/index.md new file mode 100644 index 00000000000..923aa7e45e8 --- /dev/null +++ b/hugo/content/ja/api/latest/agent-observability/search-agent-observability-spans/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability spans を検索します +--- diff --git a/hugo/content/ja/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md b/hugo/content/ja/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md new file mode 100644 index 00000000000..09c6f788a9c --- /dev/null +++ b/hugo/content/ja/api/latest/llm-observability/delete-agent-observability-dataset-records/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability データセットのレコードを削除する +--- diff --git a/hugo/content/ja/api/latest/llm-observability/list-events-for-an-agent-observability-experiment/index.md b/hugo/content/ja/api/latest/llm-observability/list-events-for-an-agent-observability-experiment/index.md new file mode 100644 index 00000000000..118ee5743ad --- /dev/null +++ b/hugo/content/ja/api/latest/llm-observability/list-events-for-an-agent-observability-experiment/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability実験のイベントを一覧表示します +--- diff --git a/hugo/content/ja/api/latest/llm-observability/update-agent-observability-dataset-records/index.md b/hugo/content/ja/api/latest/llm-observability/update-agent-observability-dataset-records/index.md new file mode 100644 index 00000000000..bde92bbafc1 --- /dev/null +++ b/hugo/content/ja/api/latest/llm-observability/update-agent-observability-dataset-records/index.md @@ -0,0 +1,3 @@ +--- +title: Agent Observability データセットのレコードを更新します +--- diff --git a/hugo/content/ja/api/latest/product-analytics/compute-a-sankey-diagram/index.md b/hugo/content/ja/api/latest/product-analytics/compute-a-sankey-diagram/index.md new file mode 100644 index 00000000000..ba365bd94ce --- /dev/null +++ b/hugo/content/ja/api/latest/product-analytics/compute-a-sankey-diagram/index.md @@ -0,0 +1,3 @@ +--- +title: サンキーダイアグラムの計算 +--- diff --git a/hugo/content/ja/api/latest/usage-metering/list-usage-quotas/index.md b/hugo/content/ja/api/latest/usage-metering/list-usage-quotas/index.md new file mode 100644 index 00000000000..d186d8d1e2f --- /dev/null +++ b/hugo/content/ja/api/latest/usage-metering/list-usage-quotas/index.md @@ -0,0 +1,3 @@ +--- +title: 使用クォータを一覧表示してください +--- diff --git a/hugo/content/ja/api/latest/usage-metering/update-a-usage-quota/index.md b/hugo/content/ja/api/latest/usage-metering/update-a-usage-quota/index.md new file mode 100644 index 00000000000..049ca88f5d6 --- /dev/null +++ b/hugo/content/ja/api/latest/usage-metering/update-a-usage-quota/index.md @@ -0,0 +1,3 @@ +--- +title: 使用クォータを更新してください +--- diff --git a/hugo/content/ja/dashboards/widgets/profiling_flame_graph.md b/hugo/content/ja/dashboards/widgets/profiling_flame_graph.md index e27c3a73e5d..49334c2e948 100644 --- a/hugo/content/ja/dashboards/widgets/profiling_flame_graph.md +++ b/hugo/content/ja/dashboards/widgets/profiling_flame_graph.md @@ -1,64 +1,61 @@ --- aliases: - /ja/video-categories/flamegraph/ -description: 消費量の多いコード行の内訳をグラフ化 (CPU、メモリ、...) +description: プロファイルされたコードパス全体のリソース消費を可視化します。 further_reading: - link: /profiler/profile_visualizations/ tag: ドキュメント - text: プロファイルの視覚化について -- link: /ja/dashboards/graphing_json/ + text: プロファイルの可視化について学ぶ +- link: /dashboards/graphing_json/ tag: ドキュメント text: JSON を使用したダッシュボードの構築 title: プロファイリングフレームグラフウィジェット widget_type: flame_graph --- +## 概要 {#overview} -## 概要 +{{< img src="dashboards/widgets/profiling_flame_graph/profiling_flame_graph_2.png" alt="プロファイリングフレームグラフ" >}} -{{< img src="dashboards/widgets/profiling_flame_graph/profiling_flame_graph.png" alt="プロファイリングフレームグラフ" >}} +[プロファイリングフレームグラフ][1]は、Continuous Profiler によって収集されたスタックトレースを可視化します。各フレームは、メソッドや行などのコードの単位を表します。フレームの幅は選択したプロファイルメトリクスの割合を表し、次の行のフレームは上のフレームによって呼び出されたコードを表します。ウィジェットを使用して、プロファイルされたアプリケーション全体のリソース集約的なコードパスを特定します。 -[プロファイリングフレームグラフの視覚化][1]は、CPU やメモリなどの消費が多いコード行の内訳を表します。このウィジェットを追加して、プロファイルされたアプリケーションのスタックトレースを視覚化し、頻繁なリソース要求を正確に特定します。 +## セットアップ {#setup} + + {{< img src="dashboards/widgets/profiling_flame_graph/profiling_flame_graph_config_2.png" alt="プロファイリングフレームグラフウィジェット設定の [Graph your data] セクション" style="width:100%;" >}} -## セットアップ +### データをグラフ化する {#graph-your-data} -{{< img src="dashboards/widgets/profiling_flame_graph/profiling_flame_graph_config.png" alt="プロファイリングフレームグラフウィジェット構成のデータをグラフ化するセクション" style="width:100%;" >}} +1. 検索フィールドで、タグを使用してプロファイリングデータのスコープを指定します。例として、`host`、`container_name`、`service`、`env`、`version` などがあります。 +2. {{< ui >}}Show{{< /ui >}} メニューで、プロファイルタイプを選択します。[利用可能なプロファイルタイプ][2]は言語によって異なります。 +3. {{< ui >}}by{{< /ui >}} メニューで、メソッドや行などのフレームの粒度を選択します。 +4. {{< ui >}}color by{{< /ui >}} および {{< ui >}}sort{{< /ui >}} メニューを使用して、フレームの網掛け方法と順序を選択します。 +5. スコープセクションを使用して、フレームグラフを絞り込みます。 + - {{< ui >}}Scope to methods{{< /ui >}}: 含めるメソッドを選択します。このセクションの名前は、{{< ui >}}by{{< /ui >}} メニューで選択された粒度に応じて変わります。 + - {{< ui >}}Scope to endpoints{{< /ui >}}: 特定のエンドポイントにフィルタリングします。`per Minute by Endpoint` を選択して合計リソース消費量を表示するか、`per Endpoint Call` を選択してリクエストごとのリソース消費量を表示します。 -### 構成 +### 時間設定を行う {#set-time-preferences} -1. タグでプロファイリングデータの範囲を指定します。例: `host`、`container_name`、`service`、`env`、`version`。 -2. リソースを選択するには、**Show** の横にあるドロップダウンメニューをクリックします。オプションには `CPU Time`、`Allocated Memory`、`Thrown Exceptions` などがあります。 -3. **by** と **for** の横にあるドロップダウンメニューをクリックして、フレームの粒度とコードの出所をそれぞれ選択します。 -4. グラフにタイトルを付けるか、提案されたタイトルを使用するにはボックスを空白のままにします。 -5. **Save** をクリックします。 +{{< ui >}}Global dashboard time{{< /ui >}} を選択してダッシュボードの時間枠を使用するか、{{< ui >}}Custom time{{< /ui >}} を選択してウィジェットの時間枠を設定します。 -### オプション +**注**: ウィジェットで固定の {{< ui >}}Custom time{{< /ui >}} 範囲を使用している場合、Notebooks はフレームグラフのデータを 1 年間保持します。ウィジェットを作成する際、範囲は [8 日間のプロファイリングデータ保持期間][5]内である必要があります。 -#### 高度なオプションとフィルタリング +### タイトルと説明を追加する {#add-a-title-and-description} -3 つのドットの省略記号をクリックして高度なオプションを開き、カラーリングや解像度を指定します。 +グラフにタイトルを付けるか、ボックスを空のままにして推奨タイトルを使用します。オプションで説明を追加することもできます。{{< ui >}}Save{{< /ui >}} をクリックします。 -フレームグラフをカスタマイズします。*Filter flame graph* フィールドにグラフアクションやフィルターを追加します。 +## ウィジェットを操作する {#interact-with-the-widget} -#### エンドポイントへのスコープ +フレームにカーソルを合わせると、そのプロファイル値が表示されます。フレームを選択すると、そのコードパスにフォーカスされます。プロファイルを詳細に調査するには、フレームグラフの右上隅にあるフルページで開くアイコンをクリックします。 -特定のエンドポイントでフィルタリングし、総消費量 (`per Minute by Endpoint`) またはリクエストごと (`per Endpoint Call`) を指定します。 +## API {#api} -#### 関数へのスコープ +このウィジェットは **[Dashboards API][3]** で使用できます。[ウィジェットの JSON スキーマ定義][4]を参照してください。 -`Method`、`Package`、`Thread name`、`Trace Operation` などの他の条件でフィルタリングします。 - -#### グローバルタイム - -ウィジェットにカスタムタイムフレームがあるか、ダッシュボードのグローバルタイムフレームがあるかを選択します。 - -## API - -このウィジェットは **[Dashboards API][2]** で使用できます。[ウィジェットの JSON スキーマ定義][3]を参照してください。 - -## その他の参考資料 +## 参考資料 {#further-reading} {{< partial name="whats-next/whats-next.html" >}} [1]: /ja/profiler/profile_visualizations/#flame-graph -[2]: /ja/api/latest/dashboards/ -[3]: /ja/dashboards/graphing_json/widget_json/ \ No newline at end of file +[2]: /ja/profiler/profile_types/ +[3]: /ja/api/latest/dashboards/ +[4]: /ja/dashboards/graphing_json/widget_json/ +[5]: /ja/data_security/data_retention_periods/ \ No newline at end of file diff --git a/hugo/content/ja/experiments/_index.md b/hugo/content/ja/experiments/_index.md new file mode 100644 index 00000000000..dfa59611d15 --- /dev/null +++ b/hugo/content/ja/experiments/_index.md @@ -0,0 +1,104 @@ +--- +description: Datadog Experiments を使用して、スタック全体でランダム化実験を計画、実行、分析します。 +further_reading: +- link: /feature_flags/ + tag: ドキュメント + text: Feature Flags +- link: /product_analytics/ + tag: ドキュメント + text: Product Analytics +- link: /feature_flags/guide/apm_trace_enrichment/ + tag: ガイド + text: Feature Flags の APM トレースエンリッチメントを設定する +- link: https://www.datadoghq.com/blog/product-signal-latency-gap/ + tag: ブログ + text: 成長を鈍化させる製品シグナルのレイテンシーギャップ +- link: https://www.datadoghq.com/blog/ab-testing/ + tag: ブログ + text: すべてのチームが A/B テストを行うべき +- link: https://www.datadoghq.com/blog/experiments + tag: ブログ + text: Datadog Experiments を使用して、すべての製品変更がビジネスに与える影響を測定する +title: Experiments +--- +## 概要{#overview} + +Datadog Experiments は、エンドツーエンドの実験を行うための、構成可能なプラットフォームです。Datadog における実験は、以下の 2 つのコンポーネントで構成されています。 + +1. [対象者][18] (通常はユーザー) を 2 つ以上のバリエーションに**ランダムに割り当てる**仕組み ([Datadog Feature Flag][1] 機能、または任意のランダム化システムを使用) +2. バリエーション間で比較するための一式の**メトリクス** (Datadog 内で計算、またはウェアハウスネイティブの分析機能を使用して計算) + +開始するには、下のテーブルからリンクを選択してください。Datadog Experiments の詳細については、このまま読み進めてください。 + +| クイックリンク| | +| :---- | :---- | +| [データウェアハウスを接続する][13]| ウェアハウスネイティブの実験分析のために Snowflake、BigQuery、Redshift、または Databricks をセットアップする| +| [データウェアハウスネイティブのメトリクスを作成する][14]| ウェアハウスのデータから、メトリクス SQL モデルや実験用メトリクスを定義する| +| [Product Analytics または Real User Monitoring のデータからメトリクスを作成する][15]| クライアント側の RUM および Product Analytics イベントから実験用メトリクスを構築する| +| [Datadog Feature Flags を使用して実験を開始する][16]| 仮説の策定と Feature Flags によるランダム化の設定を行い、実験を開始する| +| [プロトコルを使用して実験を標準化する][21]| メトリクス、ランダム化、期間、統計分析に関する再利用可能なデフォルト設定を定義する| +| [すでにランダム化された実験を分析する][17]| Datadog Feature Flags の外部でランダム化が実行された場合、データウェアハウスでエクスポージャーデータを定義する| +| [実験の診断情報を理解する][20]| エクスポージャー、メトリクス、ランダム化、分析の健全性に関する自動チェックの結果を解釈する| + +## ランダム化{#randomization} + +すべての実験には、対象をコントロールバリアントまたはトリートメントバリアントに割り当てる仕組みが必要です。Datadog は 2 つのアプローチをサポートしています。 + +### Datadog Feature Flags{#datadog-feature-flags} + +[Datadog Feature Flags][1] は、実験をランダム化するためのデフォルトの方法です。フラグを作成し、[Feature Flags SDK][9] で実装し、`targetingKey` として不変の対象識別子を渡すことで、同一ユーザーには常に同じバリアントが割り当てられるようにします。Datadog は決定論的ハッシュ処理を使用し、セッションやデバイスをまたいでも割り当ての一貫性が保たれるようにしています。 + +[実験を計画して開始する][16]際は、それを Feature Flags にリンクして、トラフィックの分割、ターゲティングルール、ロールアウトの動作を定義します。また、フラグの詳細ページから直接実験を作成することも可能です。ユーザー以外の単位 (組織など) でランダム化を行う場合は、「[サブジェクトタイプ][18]」を参照してください。 + +### 独自のランダム化の利用{#bring-your-own-randomization} + +Datadog の外部 (社内システムなど) で対象をランダム化する場合は、[エクスポージャー SQL モデル][17]を使用して、誰がいつどの実験の対象となったかを Datadog に伝えます。エクスポージャー SQL モデルは、[接続されたデータウェアハウス][13]からエクスポージャーレコードをクエリし、それらを Datadog のフィールド (対象者キー、タイムスタンプ、実験 ID、バリアント ID など) にマッピングします。 + +Datadog はエクスポージャーデータを自動的に重複排除します。つまり、同一の実験においてあるユーザーが複数のバリエーションに現れる場合、そのユーザーは分析から除外されます。Feature Flags ではなくウェアハウスからエクスポージャーを取得する場合、Datadog SDK イベントに基づいて構築されたメトリクスはサポートされません。代わりに、[ウェアハウスネイティブなメトリクス][14]を使用する必要があります。 + +## メトリクス{#metrics} + +実験メトリクスは、変更が成功したかどうかを判断するために何を測定するかを定義します。実験を開始する前に少なくとも 1 つのプライマリメトリクスを作成し、パフォーマンス、エンゲージメント、または収益への意図しない影響に対するガードレールとしてセカンダリメトリクスを追加します。 + +### ウェアハウスネイティブモード{#warehouse-native-mode} + +ウェアハウスネイティブモードでは、Datadog は Snowflake、BigQuery、Redshift、または Databricks 上で直接、実験の分析を実行します。[ウェアハウスを接続][13]した後、ウェアハウスのテーブルを Datadog にマッピングする**メトリクス SQL モデル**を作成し、そのモデルからメトリクスを定義します。各モデルを 1 つ以上の[サブジェクトタイプ][18]にマッピングし、タイムスタンプ列を指定することで、Datadog がメトリクスイベントと実験エクスポージャーを結合できるようになります。 + +ランダム化に[エクスポージャー SQL モデル][17]を使用する場合は、ウェアハウスモードの使用が必須となります。また、ビジネスメトリクスの信頼できる唯一の情報源がすでにウェアハウスにあるチームにも適しています。 + +### Product Analytics および RUM{#product-analytics-and-rum} + +クライアントサイドの実験では、[Real User Monitoring (RUM)][2] および [Product Analytics][3] SDK によって収集されたイベントからメトリクスを構築します。アクション、ビュー、セッション、その他のイベントタイプからメトリクスを定義し、イベント数、ユニークユーザー数、プロパティの合計などの集計方法を選択します。 + +この方法は、[Datadog Feature Flags][1] を通じてランダム化を実行し、ウェアハウスへのクエリを実行せずにユーザー行動、ファネルコンバージョン、またはアプリケーションパフォーマンスを測定したい場合に適しています。Product Analytics および RUM のメトリクスは、実験の開始とほぼ同時に利用可能になります。 + +## 統計{#statistics} + +Datadog は統計分析を適用して、バリアントを比較し、リフトを推定します。実験を設定する際は、[分析手法][11] (逐次頻度論、固定サンプルサイズ頻度論、またはベイズ) を選択します。また、必要に応じて[サンプルサイズ計算][8]を実行して、実験の実施期間を推定することも可能です。結果が出た後は、[グローバルリフト][19]を使用してターゲットを絞った実験のリフトが全社的なメトリクスの合計にどのような影響を与えるかを把握したり、[累積インパクト][12]を使用して同じメトリクスに対する多くの実験から得られたノイズ調整後の効果を集計したりできます。 + +{{< img src="/product_analytics/experiment/overview_metrics_view-1.png" alt="ビジネス、ファネル、パフォーマンスの各メトリクスと、各メトリクスのコントロール値、バリアント値、相対リフトを表示する実験メトリクスビュー。収益メトリクスにツールチップが表示され、コントロールグループとバリアントグループ全体でのユーザーあたりの収益、総収益、およびユーザー割り当て数の Non-CUPED 値が示されています。" style="width:90%;" >}} + +## 関連資料{#further-reading} +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /ja/feature_flags/ +[2]: /ja/real_user_monitoring/ +[3]: /ja/product_analytics/#getting-started +[4]: /ja/experiments/defining_metrics +[5]: /ja/experiments/plan_and_launch_experiments +[6]: /ja/getting_started/feature_flags/#create-your-first-feature-flag +[7]: /ja/experiments/plan_and_launch_experiments#step-3---launch-your-experiment +[8]: /ja/experiments/plan_and_launch_experiments/#run-a-sample-size-calculation-optional +[9]: /ja/getting_started/feature_flags/#feature-flags-sdks +[10]: /ja/experiments/guide/ +[11]: /ja/experiments/statistics/analysis_methods +[12]: /ja/experiments/concepts/cumulative_impact +[13]: /ja/experiments/guide/connecting_a_data_warehouse/ +[14]: /ja/experiments/defining_metrics/?tab=warehouse +[15]: /ja/experiments/defining_metrics/?tab=productanalyticsorum +[16]: /ja/experiments/plan_and_launch_experiments/ +[17]: /ja/experiments/concepts/exposure_sql/ +[18]: /ja/experiments/concepts/subject_types/ +[19]: /ja/experiments/statistics/global_lift +[20]: /ja/experiments/diagnostics/ +[21]: /ja/experiments/protocols/ \ No newline at end of file diff --git a/hugo/content/ja/incident_response/on-call/pages/live_call_routing.md b/hugo/content/ja/incident_response/on-call/pages/live_call_routing.md new file mode 100644 index 00000000000..b6dcab945c2 --- /dev/null +++ b/hugo/content/ja/incident_response/on-call/pages/live_call_routing.md @@ -0,0 +1,124 @@ +--- +aliases: +- /ja/service_management/on-call/triggering_pages/live_call_routing/ +- /ja/incident_response/on-call/triggering_pages/live_call_routing/ +further_reading: +- link: /incident_response/on-call/ + tag: ドキュメント + text: Datadog On-Call +title: ライブ通話ルーティング +--- +
+ライブ通話ルーティングは Datadog によってプロビジョニングされます。組織で有効にするには、Datadog サポートにお問い合わせください。ユースケースと該当する国コード (例:+33 フランスの国コード) を含めてください。 +
+ + +## 概要 {#overview} + +ライブ通話ルーティングは、電話を On-Call チームにつなぎます。誰かが専用番号に電話をかけると、システムは設定に従ってその通話を処理します。 + +Datadog On-Call は、次の 2 種類のルーティングをサポートしています。 + +- **直接通話ルーティング**: On-Call チームのエスカレーションポリシーに従い、発信者を現在対応可能な担当者に接続します。重大なインシデント発生時のリアルタイムな連携を可能にします。 +- **ボイスメールルーティング**: 発信者にボイスメールを残すよう促し、その音声メッセージを On-Call チーム向けのページに変換します。直接の会話を必要とせずに問題を報告する必要がある、技術者以外の発信者やサードパーティベンダーに役立ちます。 + +## 構成 {#configuration} + +### 基本ルート設定 {#basic-route-settings} + +各ライブ通話ルートには以下が含まれます。 + +- **名前**: 「本番環境のインシデント」や「セキュリティエスカレーション」などの説明的なラベル。 +- **電話番号**: このルート用に Datadog がプロビジョニングした専用番号。 +- **地域コード**: 電話番号の地理的地域 (例: 米国の場合は `US`)。 +- **アクティブステータス**: ルートが通話を受け付けているかどうか。 +- **ルーティングタイプ**: 通話の処理方法 ([ルーティングタイプ](#routing-types)を参照)。 + +### キーパッドオプション {#keypad-options} + +キーパッドオプションを使用すると、発信者がルーティング番号にダイヤルした際にメニューを表示できます。 + +ルートごとに最大 9 つのオプションを設定できます。各オプションはキー (1〜9) を On-Call チームに割り当て、そのチームのページングプロセスをトリガーします。使いやすさを向上させるには、以下のようにします。 +- 最も重要なチームやエスカレーションパスにはオプション 1 を使用します。 +- 関連するチームを隣接するキーの下にグループ化します。 +- メニューのプロンプトは簡潔かつ明確にします。 + +## ルーティングタイプ {#routing-types} + +Datadog On-Call は、直接通話ルーティングとボイスメールルーティングの 2 つのルーティングタイプをサポートしています。 + +### 直接通話ルーティング {#direct-call-routing} + +直接通話ルーティングでは、システムは On-Call チームのエスカレーションポリシーに従い、最初に対応可能な担当者に発信者を接続します。 + +担当者のプロフィールには、音声通知をサポートする有効な電話番号が登録されている必要があります。登録されていない担当者はスキップされます。 + +担当者は、次のオプションを選択できます。 +- [`1`] を押して通話を承認します。 +- [`2`] を押して通話をエスカレーションします。 +- [`3`] を押して通話を解決します。 + +#### エスカレーションロジック {#escalation-logic} + +直接通話ルーティングの場合、エスカレーションは次のように進行します。 + +- **同じレベルに複数の担当者がいる場合**: すべての担当者が同時に呼び出されます。最初に応答した担当者に接続されます。 +- **担当者が通話を拒否した場合**: システムは直ちに次の担当者へエスカレーションします。 +- **担当者の電話番号がない場合**: システムはその担当者をスキップします。 +- **エスカレーションレベルが 1 つだけ定義されている場合**: 担当者に連絡が取れない場合、発信者に誰も対応できない旨が通知され、通話が終了します。 +- **有効な電話番号を持つ担当者がいない場合**: 発信者に誰も対応できない旨が通知され、通話が終了します。 + +#### ベストプラクティス {#best-practices} + +- 複数レベルのエスカレーションポリシーを使用して、通話の取りこぼしを防ぎます。 +- 重大レベルには複数の担当者を追加して、冗長性を確保します。 +- ルーティング設定を定期的にテストする手順は、次のとおりです。 + - 各キーパッドオプションをテストし、正しいチームにルーティングされることを確認します。 + - 通話を拒否するか応答しないことで、エスカレーションの動作をシミュレーションします。 + - 担当者の電話番号が有効で、連絡可能であり、適切なボイスメール設定が構成されていることをチェックします。 + - 通話が対応可能な担当者に正常につながることを確認します。 + +### ボイスメールルーティング {#voicemail-routing} + +ボイスメールルーティングでは、発信者にボイスメールメッセージを残すよう促します。 + +#### ベストプラクティス {#best-practices-1} + +- チームメンバーがページを受信するための通知設定を構成していることを確認します。 +- ルーティング設定を定期的にテストする手順は、次のとおりです。 + - 各キーパッドオプションをテストし、正しいチームにルーティングされることを確認します。 + - ボイスメールの録音が適切にキャプチャされていることを確認します。 + - ページが作成され、正しいチームメンバーに送信されることを確認します。 + +## トラブルシューティング {#troubleshooting} + +### ルートの問題 {#route-issues} + +ルートが通話を受け付けていない場合は、次のようにします。 +- ルートがアクティブに設定されていることを確認します。 +- プロビジョニングが完了していることを確認します。プロビジョニングがまだ進行中の場合は、[Datadog サポート][1] にお問い合わせください。 +- 電話番号がこのルートに対して正しく設定されていることを確認します。 + +### キーパッドの問題 {#keypad-problems} + +キーパッドのオプションで通話が正しくルーティングされない場合は、次のようにします。 +- 各キーパッドのオプションが有効な On-Call チームにリンクされていることを確認します。 +- ルートにダイヤルし、対応するキーを押して、各オプションを個別にテストします。 +- お使いの電話システムが DTMF (タッチトーン) 入力をサポートしていることを確認します。この入力方式は、一部の VoIP システムではデフォルトで無効になっています。 + +### 直接通話ルーティング: 通話がつながらない、またはページが作成されない {#direct-call-routing-calls-not-connecting-or-no-page-created} + +通話が対応担当者につながらない、またはページが作成されない場合は、次のようにします。 +- On-Call チームに、1 つ以上のエスカレーションレベルが定義されたアクティブなエスカレーションポリシーがあることを確認します。 +- エスカレーションポリシー内のすべての対応担当者のプロファイルに、有効な電話番号が登録されていることを確認します。On-Call は、電話番号のない担当者をスキップします。 +- 各担当者の電話番号が音声通知に対応しており、連絡可能で、ブロックされたり、利用できない宛先に転送されないことをチェックします。 + +### ボイスメールルーティング: ボイスメールがページに変換されない {#voicemail-routing-voicemail-not-converting-to-a-page} + +ボイスメールが残されたがページが作成されない場合は、次のようにします。 +- ルートのルーティングタイプが**直接通話ルーティング**ではなく**ボイスメールルーティング**に設定されていることを確認します。 +- ルートに割り当てられた On-Call チームに、有効なエスカレーションポリシーがあることを確認します。 +- チームメンバーの通知設定がページを受信するように構成されていることを確認します。 +- ボイスメールの録音が正常に完了したことをチェックします。発信者がビープ音の前に電話を切ると、システムが処理できる録音が残らない場合があります。 + +[1]: /ja/help/ \ No newline at end of file diff --git a/hugo/content/ja/llm_observability/instrument/agentic/nodejs.md b/hugo/content/ja/llm_observability/instrument/agentic/nodejs.md new file mode 100644 index 00000000000..aa702e2c196 --- /dev/null +++ b/hugo/content/ja/llm_observability/instrument/agentic/nodejs.md @@ -0,0 +1,58 @@ +--- +aliases: +- /ja/llm_observability/instrumentation/agentic/nodejs/ +title: Node.jsアプリケーションのAgenticインスツルメンテーション +--- +**注**: Datadog Node.js SDKは**Node.jsランタイムのみ**をサポートしています。ユーザーのアプリケーションが他のJavascriptランタイムにある場合は、この一連の手順を**使用しないで**ください。 + +## フレームワーク {#frameworks} + +ユーザーが以下のいずれかのフレームワークでアプリケーションをインスツルメンテーションしている場合は、[インスツルメンテーション](#instrumentation)以降の手順に従う_代わりに_、そのガイドに従ってください。 + +| フレームワーク | 手順 | +|----------|-------------| +| Next.js | [Next.jsインスツルメンテーションガイド](/llm_observability/guide/nextjs_guide.md) | + +## インスツルメンテーション {#instrumentation} + +1. 最新の`ddtrace`パッケージをインストールします。 + +リポジトリやプロジェクトですでに使用されているパッケージマネージャーをチェックし、それを使用して依存関係をインストールしてください。ロックファイルで確認してください。 + +```bash +npm install dd-trace # npm +pnpm add dd-trace # pnpm +yarn add dd-trace # yarn +``` + +2. Datadogローダーフックを追加してください。 + +これは**必須**です。 + +Datadogローダーフックは、サポートされているフレームワークをインスツルメンテーションするために、ESMおよびTypescriptのインポートステートメントを自動的にパッチ適用するために使用されます。`NODE_OPTIONS="--import dd-trace/register.js"`を可能な限り早く、理想的には起動コマンドの一部として設定してください。これはNode.jsプロセスが生成されるときに利用可能である必要があるため、ロード後に設定することは**認められません**。 + +package.jsonを使用した例を以下に示します。 + +```json +{ + "scripts": { + "start": "NODE_OPTIONS=\"--import dd-trace/register.js\" node app.js" + } +} +``` + +この値は`Dockerfile`、ブートストラップスクリプトなどで設定できますが、そのインフラストラクチャーがコード内に_すでに_存在し、Node.jsアプリケーションプロセスが開始される_前_である必要があります。 + +3. Agent Observabilityパッケージを初期化してください。 + +`ddtrace.auto`を介してAgent Observability SDKを初期化してください。**これ**は、環境変数や設定読み込みのインポートを除き、アプリケーションのエントリーポイントにおける最初のインポートとして実行する必要があります。 + +**注**: 余計なコメントは追加しないでください。 + +```typescript +import 'dotenv/config'; // this might load DD_ environment variables + +import 'dd-trace/init'; // CRUCIAL: this initializes the Agent Observability SDK and instrumentations + +// ... remaining application logic +``` \ No newline at end of file diff --git a/hugo/content/ja/llm_observability/instrumentation/sdk.md b/hugo/content/ja/llm_observability/instrumentation/sdk.md index 2da21b76ff4..956c9f2b71e 100644 --- a/hugo/content/ja/llm_observability/instrumentation/sdk.md +++ b/hugo/content/ja/llm_observability/instrumentation/sdk.md @@ -11,19 +11,20 @@ aliases: - /ja/llm_observability/instrumentation/custom_instrumentation - /ja/tracing/llm_observability/trace_an_llm_application - /ja/llm_observability/setup +description: Python、Node.js、Java 向けの Agent Observability SDK のリファレンスドキュメントです。自動および手動のインスツルメンテーションについて説明しています。 further_reading: - link: https://www.datadoghq.com/blog/llm-prompt-tracking tag: ブログ - text: Datadog LLM Observability を使用して、LLM プロンプトを追跡、比較、最適化します。 -title: LLM Observability SDK リファレンス + text: Datadog LLM Observability を使用した LLM プロンプトの追跡、比較、最適化 +title: Agent Observability SDK リファレンス --- ## 概要 {#overview} -Datadog の LLM Observability SDK は、自動インスツルメンテーションおよび手動インスツルメンテーション API を提供し、LLM アプリケーションの観測可能性とインサイトを提供します。 +Agent Observability SDK は、LLM アプリケーションの可観測性とインサイトを提供するために、自動インスツルメンテーションおよび手動インスツルメンテーション API を提供します。 ## セットアップ {#setup} -### 要件 {#requirements} +### 要件{#requirements} - [Datadog API キー][1]。 @@ -31,14 +32,14 @@ Datadog の LLM Observability SDK は、自動インスツルメンテーショ {{< tabs >}} {{% tab "Python" %}} -- 最新の `ddtrace` パッケージがインストールされています (Python 3.7 以降が必要です)。 +- 最新の `ddtrace` パッケージがインストールされていること (Python 3.7 以降が必要です)。 ```shell pip install ddtrace ``` {{% /tab %}} {{% tab "Node.js" %}} -- 最新の `dd-trace` パッケージがインストールされています (Node.js 16 以降が必要です)。 +- 最新の `dd-trace` パッケージがインストールされていること (Node.js 16 以降が必要です)。 ```shell npm install dd-trace ``` @@ -46,89 +47,102 @@ Datadog の LLM Observability SDK は、自動インスツルメンテーショ {{% /tab %}} {{% tab "Java" %}} -- 最新の [`dd-trace-java` JAR][1] がダウンロードされています。LLM Observability SDK は、`dd-trace-java` v1.51.0 以降でサポートされています (Java 8 以降が必要です)。 +- 最新の [`dd-trace-java` JAR][1] をダウンロード済みであること。Agent Observability SDK は `dd-trace-java` v1.51.0 以降でサポートされています (Java 8 以降が必要です)。 [1]: https://github.com/DataDog/dd-trace-java {{% /tab %}} {{< /tabs >}} -{{% collapse-content title="コマンドラインのセットアップ" level="h3" expanded=false id="command-line-setup" %}} +{{% collapse-content title="コマンドラインセットアップ" level="h4" expanded=false id="command-line-setup" %}} {{< tabs >}} {{% tab "Python" %}} -LLM Observability を有効にするには、`ddtrace-run` コマンドを使用してアプリケーションを実行し、必要な環境変数を指定します。 +`ddtrace-run` コマンドを使用してアプリケーションを実行し、必要な環境変数を指定することで、Agent Observability を有効にします。 -**注**: `ddtrace-run` は自動的にすべての LLM Observability インテグレーションを有効にします。 +**注**: `ddtrace-run` は、すべての Agent Observability インテグレーションを自動的に有効にします。 {{< code-block lang="shell">}} DD_SITE= DD_API_KEY= DD_LLMOBS_ENABLED=1 \ DD_LLMOBS_ML_APP= ddtrace-run {{< /code-block >}} -#### コマンドラインのセットアップ用の環境変数 {#environment-variables-for-command-line-setup} +#### コマンドラインセットアップ用の環境変数{#environment-variables-for-command-line-setup} `DD_SITE` : 必須 - _文字列_ -
LLM データ送信のための送信先 Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 +
LLM データ送信先の Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 `DD_LLMOBS_ENABLED` : 必須 - _整数または文字列_ -
切り替えて、LLM Observability へのデータ送信を有効にします。`1` または `true` に設定する必要があります。 +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 `DD_LLMOBS_ML_APP` : オプション - _文字列_ -
すべてのトレースとスパンのグループ化が行われる LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。許可されている文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、または上流サービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。
**注**: バージョン `ddtrace==3.14.0` より前では、これは**必須フィールド**です。 `DD_LLMOBS_AGENTLESS_ENABLED` : オプション - _整数または文字列_ - **デフォルト**: `false` -
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `1` または `true` に設定する必要があります。 +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_SAMPLE_RATE` +: オプション - _浮動小数点数_ - **デフォルト**: `1.0` +
Agent Observability によって保持されるトレースの割合。[トレースサンプリング](#trace-sampling)を参照してください。 `DD_API_KEY` : オプション - _文字列_ -
Datadog API キー。Datadog Agent を使用していない場合のみ必要です。 +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 + +`DD_MCP_CAPTURE_INTENT` +: オプション - _整数または文字列_ - **デフォルト**: `false` +
`1` または `true` に設定すると、呼び出し元のモデルに対してツールを呼び出した理由を説明するよう要求する引数がすべての MCP サーバーツールに追加されます。インテントはツールのスパンに記録されます。 [1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment {{% /tab %}} + {{% tab "Node.js" %}} -LLM Observability を有効にするには、`NODE_OPTIONS="--import dd-trace/initialize.mjs"` を使用してアプリケーションを実行し、必要な環境変数を指定します。 +アプリケーションを `NODE_OPTIONS="--import dd-trace/initialize.mjs"` で実行し、必要な環境変数を指定することで、Agent Observability を有効にします。 -**注**: `dd-trace/initialize.mjs` は自動的にすべての APM インテグレーションを有効にします。 +**注**: `dd-trace/initialize.mjs` は、すべての APM インテグレーションを自動的に有効にします。 ```shell DD_SITE= DD_API_KEY= DD_LLMOBS_ENABLED=1 \ DD_LLMOBS_ML_APP= NODE_OPTIONS="--import dd-trace/initialize.mjs" node ``` -#### コマンドラインのセットアップ用の環境変数 {#environment-variables-for-command-line-setup-1} +#### コマンドラインセットアップ用の環境変数{#environment-variables-for-command-line-setup-1} `DD_SITE` : 必須 - _文字列_ -
LLM データ送信のための Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 `DD_LLMOBS_ENABLED` : 必須 - _整数または文字列_ -
切り替えて、LLM Observability へのデータ送信を有効にします。`1` または `true` に設定する必要があります。 +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 `DD_LLMOBS_ML_APP` : オプション - _文字列_ -
すべてのトレースとスパンのグループ化が行われる LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。許可されている文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、または上流サービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。
**注**: バージョン `dd-trace@5.66.0` より前では、これは**必須フィールド**です。 `DD_LLMOBS_AGENTLESS_ENABLED` : オプション - _整数または文字列_ - **デフォルト**: `false` -
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `1` または `true` に設定する必要があります。 +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 + +`DD_LLMOBS_SAMPLE_RATE` +: オプション - _浮動小数点数_ - **デフォルト**: `1.0` +
Agent Observability によって保持されるトレースの割合。[トレースサンプリング](#trace-sampling)を参照してください。 `DD_API_KEY` : オプション - _文字列_ -
Datadog API キー。Datadog Agent を使用していない場合のみ必要です。 +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 [1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment {{% /tab %}} {{% tab "Java" %}} -LLM Observability を有効にするには、`dd-trace-java` を使用してアプリケーションを実行し、必要なパラメーターを環境変数またはシステムプロパティとして指定します。 +アプリケーションを `dd-trace-java` で実行し、必要なパラメータを環境変数またはシステムプロパティとして指定することで、Agent Observability を有効にします。 ```shell DD_SITE= DD_API_KEY= \ @@ -136,30 +150,30 @@ java -javaagent:path/to/your/dd-trace-java-jar/dd-java-agent-SNAPSHOT.jar \ -Ddd.service=my-app -Ddd.llmobs.enabled=true -Ddd.llmobs.ml.app=my-ml-app -jar path/to/your/app.jar ``` -#### 環境変数とシステムプロパティ {#environment-variables-and-system-properties} +#### 環境変数およびシステムプロパティ {#environment-variables-and-system-properties} -次のパラメーターを環境変数 (たとえば、`DD_LLMOBS_ENABLED`) または Java システムプロパティ (たとえば、`dd.llmobs_enabled`) として指定できます。 +次のパラメータを環境変数 (例: `DD_LLMOBS_ENABLED`) または Java システムプロパティ (例: `dd.llmobs_enabled`) として指定できます。 `DD_SITE`または `dd.site` : 必須 - _文字列_ -
LLM データ送信のための送信先 Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 +
LLM データ送信先の Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。 `DD_LLMOBS_ENABLED` または `dd.llmobs.enabled` : 必須 - _整数または文字列_ -
切り替えて、LLM Observability へのデータ送信を有効にします。`1` または `true` に設定する必要があります。 +
Agent Observability へのデータ送信を有効にするための切り替えスイッチ。`1` または `true` に設定する必要があります。 `DD_LLMOBS_ML_APP`または `dd.llmobs.ml.app` : オプション - _文字列_ -
すべてのトレースとスパンのグループ化が行われる LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。許可されている文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、または上流サービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のルートスパンに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、[`DD_SERVICE`][1] の値、またはアップストリームサービスから伝播された `DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。
**注**: `dd-trace-java` のバージョン 1.54.0 より前では、これは**必須フィールド**です。 `DD_LLMOBS_AGENTLESS_ENABLED`または `dd.llmobs.agentless.enabled` : オプション - _整数または文字列_ - **デフォルト**: `false` -
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `1` または `true` に設定する必要があります。 +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`1` または `true` に設定する必要があります。 `DD_API_KEY`または `dd.api.key` : オプション - _文字列_ -
Datadog API キー。Datadog Agent を使用していない場合のみ必要です。 +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 [1]: /ja/getting_started/tagging/unified_service_tagging?tab=kubernetes#non-containerized-environment {{% /tab %}} @@ -167,17 +181,17 @@ java -javaagent:path/to/your/dd-trace-java-jar/dd-java-agent-SNAPSHOT.jar \ {{% /collapse-content %}} -{{% collapse-content title="コード内のセットアップ" level="h3" expanded=false id="in-code-setup" %}} +{{% collapse-content title="コード内セットアップ" level="h4" expanded=false id="in-code-setup" %}} -[コマンドラインのセットアップ](#command-line-setup)を使用する代わりに、プログラムにより LLM Observability を有効にすることもできます。 +[コマンドラインセットアップ](#command-line-setup)を使用する代わりに、プログラムで Agent Observability を有効にすることもできます。 {{< tabs >}} {{% tab "Python" %}} -`LLMObs.enable()` 関数を使用して LLM Observability を有効にします。 +`LLMObs.enable()` 関数を使用して Agent Observability を有効にします。
-このセットアップ方法を ddtrace-run コマンドと一緒に使用しないでください。 +このセットアップ方法は、 ddtrace-run コマンドと一緒に使用しないでください。
{{< code-block lang="python" >}} @@ -190,35 +204,43 @@ LLMObs.enable( ) {{< /code-block >}} -##### パラメーター {#parameters} +##### パラメータ {#parameters} `ml_app` : オプション - _文字列_ -
すべてのトレースとスパンのグループ化が行われる LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。許可されている文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値をオーバーライドするには、[複数アプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。 `integrations_enabled`- **デフォルト**: `true` -: オプション - _boolean_ -
Datadog がサポートする [LLM インテグレーション][1] のために、LLM 呼び出しの自動追跡を有効化するフラグです。指定しない場合、サポートされているすべての LLM インテグレーションがデフォルトで有効になります。LLM インテグレーションを使用しないようにするには、この値を `false` に設定してください。 +: オプション - _ブール値_ +
Datadog がサポートする [LLM インテグレーション][1]について、LLM 呼び出しの自動トレースを有効にするフラグ。指定しない場合、サポートされているすべての LLM インテグレーションがデフォルトで有効になります。LLM インテグレーションを使用しないようにするには、この値を `false` に設定してください。 `agentless_enabled` -: オプション - _boolean_ - **デフォルト**: `false` -
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `True` に設定する必要があります。これは、`ddtrace` ライブラリにより、Datadog Agent を必要とするデータが送信されないように設定します。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルト設定されます。 +: オプション - _ブール値_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`True` に設定する必要があります。これは、Datadog Agent を必要とするデータを送信しないように `ddtrace` ライブラリを設定するものです。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルトで使用されます。 `site` : オプション - _文字列_ -
LLM データ送信のための Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}指定しない場合、`DD_SITE` の値がデフォルト設定されます。 +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。指定しない場合、`DD_SITE` の値がデフォルトで使用されます。 `api_key` : オプション - _文字列_ -
Datadog API キー。Datadog Agent を使用していない場合のみ必要です。指定しない場合、`DD_API_KEY` の値がデフォルト設定されます。 +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。指定しない場合、`DD_API_KEY` の値がデフォルトで使用されます。 `env` : オプション - _文字列_ -
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルト設定されます。 +
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルトで使用されます。 `service` : オプション - _文字列_ -
アプリケーションで使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルト設定されます。 +
アプリケーションに使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルトで使用されます。 + +`sample_rate` +: オプション - _浮動小数点数_ +
Agent Observability によって保持されるトレースの割合。`ddtrace` 4.12.0 以降が必要です。設定されている場合、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。[トレースサンプリング](#trace-sampling)を参照してください。 + +`capture_intent` +: オプション - _ブール値_ - **デフォルト**: `false` +
`True` に設定すると、呼び出し元のモデルに対してツールを呼び出した理由を説明するよう要求する引数がすべての MCP サーバーツールに追加されます。インテントはツールのスパンに記録されます。指定しない場合、`DD_MCP_CAPTURE_INTENT` の値がデフォルトで使用されます。 [1]: /ja/llm_observability/instrumentation/auto_instrumentation/ {{% /tab %}} @@ -226,10 +248,10 @@ LLMObs.enable( {{% tab "Node.js" %}}
-このセットアップ方法を dd-trace/initialize.mjs コマンドと一緒に使用しないでください。 +このセットアップ方法は、 dd-trace/initialize.mjs コマンドと一緒に使用しないでください。
-`init()` 関数を使用して LLM Observability を有効にします。 +`init()` 関数を使用して Agent Observability を有効にします。 {{< code-block lang="javascript" >}} const tracer = require('dd-trace').init({ @@ -244,46 +266,50 @@ const tracer = require('dd-trace').init({ const llmobs = tracer.llmobs; {{< /code-block >}} -**`llmobs` 構成のオプション** +**`llmobs` 設定のオプション** `mlApp` : オプション - _文字列_ -
すべてのトレースとスパンのグループ化が行われる LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。許可されている文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値をオーバーライドするには、[複数アプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルト設定されます。 +
すべてのトレースとスパンがグループ化される、LLM アプリケーション、サービス、またはプロジェクトの名前。これは、異なるアプリケーションや実験を区別するのに役立ちます。使用可能な文字やその他の制約については、[アプリケーション命名ガイドライン](#application-naming-guidelines)を参照してください。特定のトレースに対してこの値を上書きするには、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。指定しない場合、`DD_LLMOBS_ML_APP` の値がデフォルトで使用されます。 `agentlessEnabled` -: オプション - _boolean_ - **デフォルト**: `false` -
Datadog Agent を使用していない場合のみ必要で、その場合はこれを `true` に設定する必要があります。これは、`dd-trace` ライブラリにより、Datadog Agent を必要とするデータが送信されないように設定します。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルト設定されます。 +: オプション - _ブール値_ - **デフォルト**: `false` +
Datadog Agent を使用していない場合にのみ必要です。その場合は、`true` に設定する必要があります。これは、Datadog Agent を必要とするデータを送信しないように `dd-trace` ライブラリを設定するものです。指定しない場合、`DD_LLMOBS_AGENTLESS_ENABLED` の値がデフォルトで使用されます。 + +`sampleRate` +: オプション - _数値_ +
Agent Observability によって保持されるトレースの割合。`dd-trace` 5.110.0 以降が必要です。設定されている場合、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。[トレースサンプリング](#trace-sampling)を参照してください。 **一般的なトレーサー設定のオプション**: `site` : オプション - _文字列_ -
LLM データ送信のための Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}指定しない場合、`DD_SITE` の値がデフォルト設定されます。 +
LLM データを送信する Datadog サイト。使用するサイトは {{< region-param key="dd_site" code="true" >}}です。指定しない場合、`DD_SITE` の値がデフォルトで使用されます。 `env` : オプション - _文字列_ -
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルト設定されます。 +
アプリケーションの環境の名前 (例: `prod`、`pre-prod`、`staging`)。指定しない場合、`DD_ENV` の値がデフォルトで使用されます。 `service` : オプション - _文字列_ -
アプリケーションで使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルト設定されます。 +
アプリケーションに使用されるサービスの名前。指定しない場合、`DD_SERVICE` の値がデフォルトで使用されます。 ##### 環境変数 {#environment-variables} -次の値を環境変数として設定してください。プログラムにより設定することはできません。 +次の値を環境変数として設定します。これらはプログラムで設定することはできません。 `DD_API_KEY` : オプション - _文字列_ -
Datadog API キー。Datadog Agent を使用していない場合のみ必要です。 +
Datadog API キー。Datadog Agent を使用していない場合にのみ必要です。 {{% /tab %}} {{< /tabs >}} {{% /collapse-content %}} -{{% collapse-content title="AWS Lambda のセットアップ" level="h3" expanded=false id="aws-lambda-setup" %}} +{{% collapse-content title="AWS Lambda のセットアップ" level="h4" expanded=false id="aws-lambda-setup" %}} -既存の AWS Lambda 関数を LLM Observability でインスツルメントするには、Datadog 拡張機能と各言語レイヤーを使用します。 +既存の AWS Lambda 関数を Agent Observability でインスツルメンテーションするには、Datadog 拡張機能と各言語レイヤーを使用します。 1. AWS コンソールで Cloudshell を開きます。 2. Datadog CLI クライアントをインストールします。 @@ -302,7 +328,7 @@ export DD_SITE= ```shell export DATADOG_API_KEY_SECRET_ARN= ``` -4. LLM Observability を使用して Lambda 関数をインストールします (これには Datadog 拡張機能レイヤーのバージョン 77 以降が必要です)。 +4. Agent Observability を使用して Lambda 関数をインストールします (これには Datadog 拡張機能レイヤーのバージョン 77 以上が必要です)。 {{< tabs >}} {{% tab "Python" %}} @@ -326,9 +352,9 @@ datadog-ci lambda instrument -f -r -v { {{% /tab %}} {{< /tabs >}} -4. Lambda 関数を呼び出し、LLM Observability のトレースが Datadog UI に表示されることを確認します。 +4. Lambda 関数を呼び出し、Datadog UI で Agent Observability のトレースが表示されることを確認します。 -Lambda 関数が返される前に `flush` メソッドを使用して、LLM Observability のトレースを手動でフラッシュします。 +Lambda 関数が終了する前に、`flush` メソッドを使用して Agent Observability のトレースを手動でフラッシュします。 {{< tabs >}} {{% tab "Python" %}} @@ -358,14 +384,71 @@ export const handler = async (event) => { {{% /collapse-content %}} -SDK をインストールし、アプリケーションを実行した後、自動インスツルメンテーションから LLM Observability にいくつかのデータが表示されなければなりません。手動インスツルメンテーションを使用して、まだサポートされていないライブラリからのカスタムビルドのフレームワークや操作をキャプチャできます。 +SDK をインストールしてアプリケーションを実行すると、自動インスツルメンテーションによる Agent Observability のデータが表示されるはずです。手動インスツルメンテーションは、カスタム構築されたフレームワークや、まだサポートされていないライブラリの操作をキャプチャするために使用できます。 + +## トレースサンプリング {#trace-sampling} + +
トレースサンプリングは、Python SDK (ddtrace 4.12.0以降) および Node.js SDK (dd-trace 5.110.0以降) で利用可能です。Java SDK はトレースサンプリングをサポートしていません。
+ +トレースサンプリングは、Agent Observability が保持するトレースの割合を設定します。Agent Observability の課金は送信するスパンの量に基づくため、サンプルレートの設定は Agent Observability のコストを管理する 1 つの方法です。SDK はルートスパンでサンプリングの決定を行い、[分散トレーシング](#distributed-tracing)を通じてダウンストリームサービスで作成されたスパンを含む、そのルートスパンのすべての子スパンに適用します。 + +サンプリングは、[トークンやコストのメトリクス](/llm_observability/monitoring/cost/)、その他の運用メトリクスなど、[Agent Observability のメトリクス](/llm_observability/monitoring/metrics/)には影響しません。サンプリングされていないスパンは Datadog がトレースを取り込んだ後に破棄されるため、これらのメトリクスは、指定されたサンプルレートに関係なく、アプリケーションのインスツルメンテーションされたトラフィックの 100% に基づきます。トレースサンプリングは、取り込み後に適用される[自動化ルール](/llm_observability/monitoring/automation_rules/)や [APM トレースサンプリング](/tracing/trace_pipeline/ingestion_mechanisms/)といったアプリ内コントロールからも独立しています。 + +次の 2 つのメカニズムのいずれかを通じてサンプルレートを設定します。 -## 手動インスツルメンテーション {#manual-instrumentation} +- **環境変数** (`DD_LLMOBS_SAMPLE_RATE`): [コマンドラインセットアップ](#command-line-setup)と[コード内セットアップ](#in-code-setup)の両方に適用されます。 +- **コード内パラメータ** (Python では `sample_rate`、Node.js では `sampleRate`): [コード内セットアップ](#in-code-setup)で SDK を有効にする際に、Python では `LLMObs.enable()` に、Node.js では `llmobs` で渡されます。設定されている場合、`DD_LLMOBS_SAMPLE_RATE` よりも優先されます。 + +サンプルレートは `0.0` (トレースを保持しない) から `1.0` (すべてのトレースを保持する) までの浮動小数点数です。デフォルトは `1.0` です。範囲外の値は無視されます。 {{< tabs >}} {{% tab "Python" %}} +環境変数を使用してサンプルレートを設定します。 + +{{< code-block lang="shell" >}} +DD_LLMOBS_SAMPLE_RATE=0.5 ddtrace-run +{{< /code-block >}} -LLM 操作をキャプチャするために、関数デコレータを使用してワークフローを簡単にインスツルメントすることができます。 +または `sample_rate` を `LLMObs.enable()` に渡します。これは環境変数よりも優先されます。 + +{{< code-block lang="python" >}} +from ddtrace.llmobs import LLMObs + +LLMObs.enable( + ml_app="", + sample_rate=0.5, +) +{{< /code-block >}} +{{% /tab %}} + +{{% tab "Node.js" %}} +環境変数を使用してサンプルレートを設定します。 + +{{< code-block lang="shell" >}} +DD_LLMOBS_SAMPLE_RATE=0.5 NODE_OPTIONS="--import dd-trace/initialize.mjs" +{{< /code-block >}} + +または `llmobs` で `sampleRate` を `init()` に渡します。これは環境変数よりも優先されます。 + +{{< code-block lang="javascript" >}} +const tracer = require('dd-trace').init({ + llmobs: { + mlApp: "", + sampleRate: 0.5, + }, +}); + +const llmobs = tracer.llmobs; +{{< /code-block >}} +{{% /tab %}} +{{< /tabs >}} + +## 手動インスツルメンテーション{#manual-instrumentation} + +{{< tabs >}} +{{% tab "Python" %}} + +LLM 操作をキャプチャするために、関数デコレータを使用してワークフローを簡単にインスツルメンテーションできます。 {{< code-block lang="python" >}} from ddtrace.llmobs.decorators import workflow @@ -375,7 +458,7 @@ def handle_user_request(): ... {{< /code-block >}} -または、細かい操作をキャプチャするためのコンテキストマネージャーベースのアプローチ: +または、きめ細かな操作をキャプチャするためにコンテキストマネージャーベースのアプローチを使用します。 {{< code-block lang="python" >}} from ddtrace.llmobs import LLMObs @@ -391,24 +474,24 @@ with LLMObs.llm(model="gpt-4o"): {{< /code-block >}} -利用可能なスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。関数内の操作をより詳細にトレースする方法については、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 +利用可能なスパンの種類の一覧については、[スパンの種類のドキュメント][1]を参照してください。関数内の操作をより詳細にトレースするには、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 [1]: /ja/llm_observability/terms/ {{% /tab %}} {{% tab "Node.js" %}} -スパンをトレースするには、トレースしたい関数の関数ラッパーとして `llmobs.wrap(options, function)` を使用します。利用可能なスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。関数内の操作をより詳細にトレースする方法については、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 +スパンをトレースするには、トレースしたい関数の関数ラッパーとして `llmobs.wrap(options, function)` を使用します。利用可能なスパンの種類の一覧については、[スパンの種類のドキュメント][1]を参照してください。関数内の操作をより詳細にトレースするには、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 ### スパンの種類 {#span-kinds} -スパンの種類は必須であり、`llmobs` トレース関数 (`trace`、`wrap`、および `decorate`) に渡される `options` オブジェクトに指定します。サポートされているスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。 +スパンの種類は必須であり、`llmobs` トレース関数 (`trace`、`wrap`、および `decorate`) に渡される `options` オブジェクトで指定されます。サポートされているスパンの種類の一覧については、[スパンの種類のドキュメント][1]を参照してください。 -**注:** 無効なスパンの種類を持つスパンは、LLM Observability に送信されません。 +**注:** 無効なスパンの種類を持つスパンは、Agent Observability に送信されません。 -### 自動関数引数/出力/名前キャプチャ {#automatic-function-argumentoutputname-capturing} +### 関数の引数/出力/名前の自動キャプチャ {#automatic-function-argumentoutputname-capturing} -`llmobs.wrap` (TypeScript の場合は [`llmobs.decorate`](#function-decorators-in-typescript) も) では、トレースされている関数の入力、出力、および名前を自動的にキャプチャしようとします。スパンに手動でアノテーションを付ける必要がある場合は、[スパンの強化](#enriching-spans)を参照してください。アノテーションを付けた入力と出力により、自動キャプチャがオーバーライドされます。さらに、関数名をオーバーライドするには、オプションオブジェクトの `name` プロパティを `llmobs.wrap` 関数に渡します。 +`llmobs.wrap` (TypeScript 用の [`llmobs.decorate`](#function-decorators-in-typescript) も同様) は、トレース対象の関数の入力、出力、および名前を自動的にキャプチャしようとします。スパンに手動でアノテーションを付ける必要がある場合は、[スパンのエンリッチメント](#enriching-spans)を参照してください。アノテーションを付けた入力と出力は、自動キャプチャを上書きします。さらに、関数名を上書きするには、options オブジェクトの `name` プロパティを `llmobs.wrap` 関数に渡します。 {{< code-block lang="javascript" >}} function processMessage () { @@ -418,13 +501,13 @@ function processMessage () { processMessage = llmobs.wrap({ kind: 'workflow', name: 'differentFunctionName' }, processMessage) {{< /code-block >}} -### ラップされた関数のスパンを終了する条件{#conditions-for-finishing-a-span-for-a-wrapped-function} +### ラップされた関数のスパンを終了するための条件 {#conditions-for-finishing-a-span-for-a-wrapped-function} -`llmobs.wrap` は、[`tracer.wrap`][2] の基本的な動作を拡張します。関数が呼び出されたときに作成される基本的なスパンは、次の条件で終了します。 +`llmobs.wrap` は、[`tracer.wrap`][2] の基盤となる動作を拡張します。関数が呼び出されたときに作成される基盤となるスパンは、次の条件で終了します。 -- 関数が Promise を返す場合、スパンは Promise が解決または拒否されたときに終了します。 -- 関数が最後のパラメーターとしてコールバックを受け取る場合、スパンはそのコールバックが呼び出されたときに終了します。 -- 関数がコールバックを受け取らず、Promise を返さない場合、スパンは関数実行の終了時に終了します。 +- 関数が Promise を返す場合、その Promise が解決または拒否されたときにスパンが終了します。 +- 関数が最後のパラメータとしてコールバックを受け取る場合、そのコールバックが呼び出されたときにスパンが終了します。 +- 関数がコールバックを受け取らず、Promise も返さない場合、関数実行の終了時にスパンが終了します。 次の例は、最後の引数がコールバックである 2 番目の条件を示しています。 @@ -445,7 +528,7 @@ app.use(myAgentMiddleware) {{< /code-block >}} -アプリケーションがコールバック関数を使用しない場合は、代わりにインラインでトレースされたブロックを使用することをお勧めします。詳細については、[インラインメソッドを使用したトレースのスパン](#tracing-spans-using-inline-methods)を参照してください。 +アプリケーションでコールバック関数を使用しない場合は、代わりにインラインのトレースブロックを使用することをお勧めします。詳細については、[インラインメソッドを使用したスパンのトレース](#tracing-spans-using-inline-methods)を参照してください。 {{< code-block lang="javascript" >}} const express = require('express') @@ -469,15 +552,15 @@ app.use(myAgentMiddleware) ### スパンの開始 {#starting-a-span} -開始するスパンの種類に基づいて、複数の方法でスパンを開始することができます。サポートされているスパンの種類のリストについては、[スパンの種類のドキュメント][1] を参照してください。 +開始するスパンの種類に基づいて、スパンを開始する方法は複数あります。サポートされているスパンの種類の一覧については、[スパンの種類のドキュメント][1]を参照してください。 -すべてのスパンは、`LLMObsSpan` のオブジェクトインスタンスとして開始されます。各スパンには、スパンとやりとりし、データを記録するためのメソッドがあります。 +すべてのスパンは、`LLMObsSpan` のオブジェクトインスタンスとして開始されます。各スパンには、スパンと対話してデータを記録するために使用できるメソッドがあります。 ### スパンの終了 {#finishing-a-span} -トレースを送信し、Datadog アプリで表示するためには、スパンを終了する必要があります。 +トレースを送信して Datadog アプリで表示されるようにするには、スパンを終了する必要があります。 -スパンを終了するには、スパンオブジェクトインスタンスで `finish()` を呼び出します。可能であれば、例外が発生した場合でもスパンが送信されるように、スパンを `try/finally` ブロックでラップしてください。 +スパンを終了するには、スパンオブジェクトインスタンスで `finish()` を呼び出します。可能であれば、例外が発生した場合でもスパンが確実に送信されるように、スパンを `try/finally` ブロックでラップします。 #### 例 {#example-1} @@ -495,11 +578,11 @@ app.use(myAgentMiddleware) {{% /tab %}} {{< /tabs >}} -### LLM 呼び出し{#llm-calls} +### LLM 呼び出し {#llm-calls} -
LLM プロバイダーや、Datadog の LLM インテグレーションによってサポートされているフレームワークを使用している場合、これらの操作をトレースするために LLM スパンを手動で開始する必要はありません。
+
Datadog の LLM インテグレーションでサポートされている LLM プロバイダーやフレームワークを使用している場合、それらの操作をトレースするために手動で LLM スパンを開始する必要はありません。
-
LLM スパンを手動でインスツルメントする場合は、スパンにアノテーションを付けて、トークン数 ( input_tokensoutput_tokens、および total_tokens) を自分で記録する必要があります。詳細については、スパンの強化を参照してください。
+
LLM スパンを手動でインスツルメンテーションしている場合は、トークン数 ( input_tokensoutput_tokenstotal_tokensなど) をスパンにアノテーションを付けて自分で記録する必要があります。詳細については、スパンのエンリッチメントを参照してください。
{{< tabs >}} {{% tab "Python" %}} @@ -513,12 +596,12 @@ LLM 呼び出しをトレースするには、関数デコレータ `ddtrace.llm `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `model_provider` : オプション - _文字列_ - **デフォルト**: `"custom"`
モデルプロバイダーの名前。 -
**注**: 米ドルでの推定コストを表示するには、`model_provider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 +
**注**: 推定コストを米ドルで表示するには、`model_provider` を `openai`、`azure_openai`、または `anthropic` のいずれかの値に設定してください。 `session_id` : オプション - _文字列_ @@ -530,7 +613,7 @@ LLM 呼び出しをトレースするには、関数デコレータ `ddtrace.llm {{% /collapse-content %}} -#### 例 {#example-2} +#### 例{#example-2} {{< code-block lang="python" >}} from ddtrace.llmobs import LLMObs @@ -549,7 +632,7 @@ def llm_call(prompt): {{% /tab %}} {{% tab "Node.js" %}} -LLM 呼び出しをトレースするには、スパンの種類を `llm` と指定し、必要に応じてオプションオブジェクトに次の引数を指定します。 +LLM 呼び出しをトレースするには、スパンの種類を `llm` として指定し、必要に応じて options オブジェクトで次の引数を指定します。 {{% collapse-content title="引数" level="h4" expanded=false id="llm-span-arguments" %}} @@ -559,12 +642,12 @@ LLM 呼び出しをトレースするには、スパンの種類を `llm` と指 `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `modelProvider` : オプション - _文字列_ - **デフォルト**: `"custom"`
モデルプロバイダーの名前。 -
**注**: 米ドルでの推定コストを表示するには、`modelProvider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 +
**注**: 推定コストを米ドルで表示するには、`modelProvider` を `openai`、`azure_openai`、または `anthropic` のいずれかの値に設定してください。 `sessionId` : オプション - _文字列_ @@ -576,7 +659,7 @@ LLM 呼び出しをトレースするには、スパンの種類を `llm` と指 {{% /collapse-content %}} -#### 例 {#example-3} +#### 例{#example-3} {{< code-block lang="javascript" >}} function llmCall (prompt) { @@ -593,7 +676,7 @@ llmCall = llmobs.wrap({ kind: 'llm', name: 'invokeLLM', modelName: 'claude', mod {{% /tab %}} {{% tab "Java" %}} -LLM 呼び出しをトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 +LLM 呼び出しをトレースするには、次のメソッドをインポートし、下記の引数を指定して呼び出します。 ``` import datadog.trace.api.llmobs.LLMObs; @@ -604,7 +687,7 @@ LLMObs.startLLMSpan(spanName, modelName, modelProvider, mlApp, sessionID); `spanName` : オプション - _文字列_ -
操作の名前。指定されていない場合、`spanName` はデフォルトでスパンの種類に設定されます。 +
操作の名前。指定しない場合、`spanName` はデフォルトでスパンの種類に設定されます。 `modelName` : オプション - _文字列_ - **デフォルト**: `"custom"` @@ -613,11 +696,11 @@ LLMObs.startLLMSpan(spanName, modelName, modelProvider, mlApp, sessionID); `modelProvider` : オプション - _文字列_ - **デフォルト**: `"custom"`
モデルプロバイダーの名前。 -
**注**: 米ドルでの推定コストを表示するには、`modelProvider` を次のいずれかの値に設定してください: `openai`、`azure_openai`、または `anthropic`。 +
**注**: 推定コストを米ドルで表示するには、`modelProvider` を `openai`、`azure_openai`、または `anthropic` のいずれかの値に設定してください。 `mlApp` : オプション - _文字列_ -
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +
操作が属する ML アプリケーションの名前。null 以外の値を指定すると、アプリケーションの開始時に指定された ML アプリケーション名が上書きされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 `sessionId` : オプション - _文字列_ @@ -625,7 +708,7 @@ LLMObs.startLLMSpan(spanName, modelName, modelProvider, mlApp, sessionID); {{% /collapse-content %}} -#### 例 {#example-4} +#### 例{#example-4} {{< code-block lang="java" >}} import datadog.trace.api.llmobs.LLMObs; @@ -654,12 +737,12 @@ public class MyJavaClass { {{< tabs >}} {{% tab "Python" %}} -ワークフローのスパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.workflow()` を使用します。 +ワークフロースパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.workflow()` を使用します。 {{% collapse-content title="引数" level="h4" expanded=false id="workflow-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `session_id` : オプション - _文字列_ @@ -671,7 +754,7 @@ public class MyJavaClass { {{% /collapse-content %}} -#### 例 {#example-5} +#### 例{#example-5} {{< code-block lang="python" >}} from ddtrace.llmobs.decorators import workflow @@ -686,13 +769,13 @@ def process_message(): {{% tab "Node.js" %}} -ワークフローのスパンをトレースするには、スパンの種類を `workflow` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 +ワークフロースパンをトレースするには、スパンの種類を `workflow` として指定し、必要に応じて options オブジェクトで引数を指定します。 {{% collapse-content title="引数" level="h4" expanded=false id="workflow-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `sessionId` : オプション - _文字列_ @@ -704,7 +787,7 @@ def process_message(): {{% /collapse-content %}} -#### 例 {#example-6} +#### 例{#example-6} {{< code-block lang="javascript" >}} function processMessage () { @@ -716,7 +799,7 @@ processMessage = llmobs.wrap({ kind: 'workflow' }, processMessage) {{% /tab %}} {{% tab "Java" %}} -ワークフローのスパンをトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 +ワークフロースパンをトレースするには、次のメソッドをインポートし、下記の引数を指定して呼び出します。 ``` import datadog.trace.api.llmobs.LLMObs; @@ -727,11 +810,11 @@ LLMObs.startWorkflowSpan(spanName, mlApp, sessionID); `spanName` : オプション - _文字列_ -
操作の名前。指定されていない場合、`spanName` はデフォルトでスパンの種類に設定されます。 +
操作の名前。指定しない場合、`spanName` はデフォルトでスパンの種類に設定されます。 `mlApp` : オプション - _文字列_ -
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +
操作が属する ML アプリケーションの名前。null 以外の値を指定すると、アプリケーションの開始時に指定された ML アプリケーション名が上書きされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 `sessionId` : オプション - _文字列_ @@ -739,7 +822,7 @@ LLMObs.startWorkflowSpan(spanName, mlApp, sessionID); {{% /collapse-content %}} -#### 例 {#example-7} +#### 例{#example-7} {{< code-block lang="java" >}} import datadog.trace.api.llmobs.LLMObs; @@ -759,7 +842,7 @@ public class MyJavaClass { {{< /tabs >}} -### エージェント {#agents} +### エージェント{#agents} {{< tabs >}} {{% tab "Python" %}} @@ -769,7 +852,7 @@ public class MyJavaClass { `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `session_id` : オプション - _文字列_ @@ -780,7 +863,7 @@ public class MyJavaClass {
操作が属する ML アプリケーションの名前。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 {{% /collapse-content %}} -#### 例 {#example-8} +#### 例{#example-8} {{< code-block lang="python" >}} from ddtrace.llmobs.decorators import agent @@ -794,13 +877,13 @@ def react_agent(): {{% /tab %}} {{% tab "Node.js" %}} -エージェントの実行をトレースするには、スパンの種類を `agent` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 +エージェントの実行をトレースするには、スパンの種類を `agent` として指定し、必要に応じて options オブジェクトで引数を指定します。 {{% collapse-content title="引数" level="h4" expanded=false id="agent-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `sessionId` : オプション - _文字列_ @@ -812,7 +895,7 @@ def react_agent(): {{% /collapse-content %}} -#### 例 {#example-9} +#### 例{#example-9} {{< code-block lang="javascript" >}} function reactAgent () { @@ -824,7 +907,7 @@ reactAgent = llmobs.wrap({ kind: 'agent' }, reactAgent) {{% /tab %}} {{% tab "Java" %}} -エージェントの実行をトレースするには、次のメソッドをインポートして、次の引数を指定して呼び出します。 +エージェントの実行をトレースするには、次のメソッドをインポートし、下記の引数を指定して呼び出します。 ``` import datadog.trace.api.llmobs.LLMObs; @@ -835,11 +918,11 @@ LLMObs.startAgentSpan(spanName, mlApp, sessionID); `spanName` : オプション - _文字列_ -
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`spanName` はデフォルトでトレース対象関数の名前に設定されます。 `mlApp` : オプション - _文字列_ -
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +
操作が属する ML アプリケーションの名前。null 以外の値を指定すると、アプリケーションの開始時に指定された ML アプリケーション名が上書きされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 `sessionId` : オプション - _文字列_ @@ -850,7 +933,7 @@ LLMObs.startAgentSpan(spanName, mlApp, sessionID); {{% /tab %}} {{< /tabs >}} -### ツール呼び出し {#tool-calls} +### ツール呼び出し{#tool-calls} {{< tabs >}} {{% tab "Python" %}} @@ -860,7 +943,7 @@ LLMObs.startAgentSpan(spanName, mlApp, sessionID); `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `session_id` : オプション - _文字列_ @@ -886,13 +969,13 @@ def call_weather_api(): {{% /tab %}} {{% tab "Node.js" %}} -ツール呼び出しをトレースするには、スパンの種類を `tool` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 +ツール呼び出しをトレースするには、スパンの種類を `tool` として指定し、必要に応じて options オブジェクトで引数を指定します。 {{% collapse-content title="引数" level="h4" expanded=false id="tool-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `sessionId` : オプション - _文字列_ @@ -916,7 +999,7 @@ callWeatherApi = llmobs.wrap({ kind: 'tool' }, callWeatherApi) {{% /tab %}} {{% tab "Java" %}} -ツール呼び出しをトレースするには、次のメソッドをインポートし、次の引数を指定して呼び出します。 +ツール呼び出しをトレースするには、次のメソッドをインポートし、下記の引数を指定して呼び出します。 ```java import datadog.trace.api.llmobs.LLMObs; @@ -927,11 +1010,11 @@ LLMObs.startToolSpan(spanName, mlApp, sessionID); `spanName` : オプション - _文字列_ -
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`spanName` はデフォルトでトレース対象関数の名前に設定されます。 `mlApp` : オプション - _文字列_ -
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +
操作が属する ML アプリケーションの名前。null 以外の値を指定すると、アプリケーションの開始時に指定された ML アプリケーション名が上書きされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 `sessionId` : オプション - _文字列_ @@ -946,13 +1029,13 @@ LLMObs.startToolSpan(spanName, mlApp, sessionID); {{< tabs >}} {{% tab "Python" %}} -タスクのスパンをトレースするには、関数デコレータ `LLMObs.task()` を使用します。 +タスクスパンをトレースするには、関数デコレータ `LLMObs.task()` を使用します。 {{% collapse-content title="引数" level="h4" expanded=false id="task-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `session_id` : オプション - _文字列_ @@ -978,13 +1061,13 @@ def sanitize_input(): {{% /tab %}} {{% tab "Node.js" %}} -タスクスパンをトレースするには、スパンの種類を `task` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 +タスクスパンをトレースするには、スパンの種類を `task` として指定し、必要に応じて options オブジェクトで引数を指定します。 {{% collapse-content title="引数" level="h4" expanded=false id="task-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `sessionId` : オプション - _文字列_ @@ -1008,7 +1091,7 @@ sanitizeInput = llmobs.wrap({ kind: 'task' }, sanitizeInput) {{% /tab %}} {{% tab "Java" %}} -タスクスパンをトレースするには、次のメソッドをインポートし、次の引数を指定して呼び出します。 +タスクスパンをトレースするには、次のメソッドをインポートし、下記の引数を指定して呼び出します。 ```java import datadog.trace.api.llmobs.LLMObs; @@ -1019,11 +1102,11 @@ LLMObs.startTaskSpan(spanName, mlApp, sessionID); `spanName` : オプション - _文字列_ -
操作の名前。指定されていない場合、`spanName` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`spanName` はデフォルトでトレース対象関数の名前に設定されます。 `mlApp` : オプション - _文字列_ -
操作が属する ML アプリケーションの名前。非 null の値を指定すると、アプリケーションの開始時に指定された ML アプリ名がオーバーライドされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 +
操作が属する ML アプリケーションの名前。null 以外の値を指定すると、アプリケーションの開始時に指定された ML アプリケーション名が上書きされます。詳細については、[複数のアプリケーションのトレース](#tracing-multiple-applications)を参照してください。 `sessionId` : オプション - _文字列_ @@ -1041,7 +1124,7 @@ LLMObs.startTaskSpan(spanName, mlApp, sessionID); {{% tab "Python" %}} 埋め込み操作をトレースするには、関数デコレータ `LLMObs.embedding()` を使用します。 -**注**: 埋め込みスパンの入力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。埋め込み入力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 +**注**: 埋め込みスパンの入力にアノテーションを付けるには、他のスパンタイプとは異なる形式が必要です。埋め込み入力の指定方法の詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 {{% collapse-content title="引数" level="h4" expanded=false id="embedding-span-arguments" %}} @@ -1051,7 +1134,7 @@ LLMObs.startTaskSpan(spanName, mlApp, sessionID); `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はトレース対象関数の名前に設定されます。 `model_provider` : オプション - _文字列_ - **デフォルト**: `"custom"` @@ -1080,9 +1163,9 @@ def perform_embedding(): {{% /tab %}} {{% tab "Node.js" %}} -埋め込み操作をトレースするには、スパンの種類を `embedding` と指定し、必要に応じてオプションオブジェクトに引数を指定します。 +埋め込み操作をトレースするには、スパンの種類を `embedding` として指定し、必要に応じて options オブジェクトで引数を指定します。 -**注**: 埋め込みスパンの入力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。埋め込み入力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 +**注**: 埋め込みスパンの入力にアノテーションを付けるには、他のスパンタイプとは異なる形式が必要です。埋め込み入力の指定方法の詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 {{% collapse-content title="引数" level="h4" expanded=false id="embedding-span-arguments" %}} @@ -1092,7 +1175,7 @@ def perform_embedding(): `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はトレース対象関数の名前に設定されます。 `modelProvider` : オプション - _文字列_ - **デフォルト**: `"custom"` @@ -1122,19 +1205,19 @@ performEmbedding = llmobs.wrap({ kind: 'embedding', modelName: 'text-embedding-3 {{% /tab %}} {{< /tabs >}} -### 取得 {#retrievals} +### 検索 {#retrievals} {{< tabs >}} {{% tab "Python" %}} -取得スパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.retrieval()` を使用します。 +検索スパンをトレースするには、関数デコレータ `ddtrace.llmobs.decorators.retrieval()` を使用します。 -**注**: 取得スパンの出力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。取得出力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 +**注**: 検索スパンの出力にアノテーションを付けるには、他のスパンタイプとは異なる形式が必要です。検索出力の指定方法の詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 {{% collapse-content title="引数" level="h4" expanded=false id="retrieval-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `session_id` : オプション - _文字列_ @@ -1167,15 +1250,15 @@ def get_relevant_docs(question): {{% tab "Node.js" %}} -取得スパンをトレースするには、スパンの種類を `retrieval` と指定し、必要に応じてオプションオブジェクトに次の引数を指定します。 +検索スパンをトレースするには、スパンの種類を `retrieval` として指定し、必要に応じて options オブジェクトで次の引数を指定します。 -**注**: 取得スパンの出力のアノテーションを付けるには、ほかのスパンタイプとは異なるフォーマットが必要です。取得出力を指定する方法の詳細については、[スパンの強化](#enriching-spans)を参照してください。 +**注**: 検索スパンの出力にアノテーションを付けるには、他のスパンタイプとは異なる形式が必要です。検索出力の指定方法の詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 {{% collapse-content title="引数" level="h4" expanded=false id="retrieval-span-arguments" %}} `name` : オプション - _文字列_ -
操作の名前。指定されていない場合、`name` はデフォルトでトレースされた関数の名前に設定されます。 +
操作の名前。指定しない場合、`name` はデフォルトでトレース対象関数の名前に設定されます。 `sessionId` : オプション - _文字列_ @@ -1189,7 +1272,7 @@ def get_relevant_docs(question): #### 例 {#example-17} -ここには、スパンにアノテーションを付ける例も含まれています。詳細については、[スパンの強化](#enriching-spans)を参照してください。 +ここには、スパンにアノテーションを付ける例も含まれています。詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 {{< code-block lang="javascript" >}} function getRelevantDocs (question) { @@ -1213,7 +1296,7 @@ getRelevantDocs = llmobs.wrap({ kind: 'retrieval' }, getRelevantDocs) ## スパンのネスト {#nesting-spans} -現在のスパンが終了する前に新しいスパンを開始すると、2 つのスパンの間にある親子関係が自動的にトレースされます。親スパンは大きな操作を表し、子スパンはその中の小さなネストされたサブ操作を表します。 +現在のスパンが終了する前に新しいスパンを開始すると、2 つのスパン間の親子関係が自動的にトレースされます。親スパンは大きな操作を表し、子スパンはその中の小さなネストされたサブ操作を表します。 {{< tabs >}} {{% tab "Python" %}} @@ -1275,19 +1358,19 @@ public class MyJavaClass { {{< /tabs >}} -## スパンの強化 {#enriching-spans} +## スパンのエンリッチメント {#enriching-spans}
-ここでの metrics パラメーターは、個々のスパンに属性として付加された数値を指します。Datadog プラットフォームメトリクスではありません。認識された特定のキー ( input_tokensoutput_tokens、および total_tokensなど) に対し、Datadog はこれらのスパン属性を使用して、対応するプラットフォームメトリクス ( ml_obs.span.llm.input.tokensなど) をダッシュボードやモニターで使用するために生成します。 +ここでの metrics パラメータは、個々のスパンに属性として付与される数値のことであり、Datadog プラットフォームのメトリクスではありません。特定の認識されたキー ( input_tokensoutput_tokenstotal_tokensなど) について、Datadog はこれらのスパン属性を使用して、ダッシュボードやモニターで使用するための対応するプラットフォームのメトリクス ( ml_obs.span.llm.input.tokensなど) を生成します。
{{< tabs >}} {{% tab "Python" %}} -SDK には、入力、出力、およびメタデータでスパンを強化するための `LLMObs.annotate()` メソッドが用意されています。 +SDK には、入力、出力、メタデータでスパンをエンリッチするためのメソッド `LLMObs.annotate()` が用意されています。 -`LLMObs.annotate()` メソッドは次の引数を受け付けます。 +`LLMObs.annotate()` メソッドは、次の引数を受け入れます。 -{{% collapse-content title="引数" level="h4" expanded=false id="annotating-span-arguments" %}} +{{% collapse-content title="引数" level="h3" expanded=false id="annotating-span-arguments" %}} `span` : オプション - _スパン_ - **デフォルト**: 現在のアクティブなスパン @@ -1295,27 +1378,31 @@ SDK には、入力、出力、およびメタデータでスパンを強化す `input_data` : オプション - _JSON のシリアライズ可能な型、または辞書のリスト_ -
JSON のシリアライズ可能な型 (非 LLM スパン用) またはこの形式の辞書のリスト (: `{"content": "...", "role": "...", "tool_calls": ..., "tool_results": ...}`)。ここで `"tool_calls"` は、必須キー `"name"`、`"arguments"` を持つ呼び出し辞書のオプションのリストであり、オプションのキー `"tool_id"`、`"type"`、および `"tool_results"` は、必須キー `"result"` と、関数呼び出しシナリオ用のオプションのキー `"name"`、`"tool_id"`、`"type"` を持つツール結果辞書のオプションのリストです。**注**: 埋め込みスパンは特別なケースであり、`{"text": "..."}` という形式の文字列または辞書 (または辞書のリスト) が必要です。 +
JSON のシリアライズ可能な型 (LLM 以外のスパンの場合)、または辞書のリスト (形式: `{"content": "...", "role": "...", "tool_calls": ..., "tool_results": ..., "audio_parts": ..., "image_parts": ...}`)。ここで、`"tool_calls"` は、必須のキー `"name"`、`"arguments"` とオプションのキー `"tool_id"`、`"type"` を持つツール呼び出し辞書のオプションのリストです。`"tool_results"` は、必須のキー `"result"` とオプションのキー `"name"`、`"tool_id"`、`"type"` (関数呼び出しシナリオ用) を持つツール結果辞書のオプションのリストです。`"audio_parts"` および `"image_parts"` は、マルチモーダルスパン用のメディア辞書のオプションのリストであり、それぞれ必須の `"mime_type"` と `"content"` (インラインで保持される base64 エンコードされたメディア) または `"attachment_key"` のいずれか一方を持ちます。**注**: 埋め込みスパンは特殊なケースであり、`{"text": "..."}` の形式の文字列または辞書 (あるいは辞書のリスト) が必要です。 `output_data` : オプション - _JSON のシリアライズ可能な型、または辞書のリスト_ -
JSON のシリアライズ可能な型 (非 LLM スパン用) または `{"content": "...", "role": "...", "tool_calls": ...}` という形式の辞書のリスト。ここで `"tool_calls"` は、必須キー `"name"`、`"arguments"` と、関数呼び出しシナリオ用のオプションのキー `"tool_id"`、`"type"` を持つツール呼び出し辞書のオプションのリストです。**注**: 取得スパンは特別なケースであり、`{"text": "...", "name": "...", "score": float, "id": "..."}` という形式の文字列または辞書 (または辞書のリスト) が必要です。 +
JSON のシリアライズ可能な型 (LLM 以外のスパンの場合)、または辞書のリスト(形式: `{"content": "...", "role": "...", "tool_calls": ..., "audio_parts": ..., "image_parts": ...}`)。ここで、`"tool_calls"` は、必須のキー `"name"`、`"arguments"` とオプションのキー `"tool_id"`、`"type"` (関数呼び出しシナリオ用) を持つツール呼び出し辞書のオプションのリストです。`"audio_parts"` および `"image_parts"` は、マルチモーダルスパン用のメディア辞書のオプションのリストであり、それぞれ必須の `"mime_type"` と `"content"` (インラインで保持される base64 エンコードされたメディア) または `"attachment_key"` のいずれか一方を持ちます。**注**: 検索スパンは特殊なケースであり、`{"text": "...", "name": "...", "score": float, "id": "..."}` の形式の文字列または辞書 (あるいは辞書のリスト) が必要です。 `tool_definitions` : オプション - _辞書のリスト_ -
関数呼び出しシナリオ用のツール定義辞書のリスト。各ツール定義には、必須の `"name": "..."` キーとオプションの `"description": "..."` および `"schema": {...}` キーが必要です。 +
関数呼び出しシナリオ用のツール定義辞書のリスト。各ツール定義には、必須の `"name": "..."` キーとオプションの `"description": "..."` キーおよび `"schema": {...}` キーが含まれます。 `metadata` : オプション - _辞書_ -
スパンで記述された入力または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です (`model_temperature`、`max_tokens`、`top_k` など)。 +
スパンによって記述される入力操作または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアの辞書 (`model_temperature`、`max_tokens`、`top_k` など)。 `metrics` : オプション - _辞書_ -
スパンで記述された操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値の辞書です (`input_tokens`、`output_tokens`、`total_tokens`、`time_to_first_token` など)。`time_to_first_token` の単位は秒であり、デフォルトで出力される `duration` メトリクスと同様です。 +
スパンによって記述される操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値の辞書 (`input_tokens`、`output_tokens`、`total_tokens`、`time_to_first_token` など)。`time_to_first_token` の単位は秒であり、デフォルトで出力される `duration` メトリクスと同様です。 `tags` : オプション - _辞書_ -
ユーザーがタグとしてスパンに追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 +
ユーザーがスパンにタグとして追加できる、JSON のシリアライズ可能なキーと値のペアの辞書。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの使用を開始する](/getting_started/tagging/)を参照してください。 + +`cost_tags` +: オプション - _文字列のリスト_ +
生成される LLM のコストメトリクスおよびトークンメトリクスにカスタムタグとして伝播させるタグキーのリスト (`tags` で設定済みか、同じスパン上で以前にアノテーション付けされたもの)。既存のタグキーを参照していないエントリはスキップされます。詳細については、[コスト監視](#cost-monitoring)を参照してください。 {{% /collapse-content %}} @@ -1371,45 +1458,101 @@ def similarity_search(): ) return +@llm(model_name="gpt-realtime", model_provider="openai") +def voice_turn(user_audio_bytes): + import base64 + resp = ... # multimodal (audio) llm call here + LLMObs.annotate( + span=None, + input_data=[ + { + "role": "user", + "content": "Hey, how are you?", # transcript of the input audio + "audio_parts": [ + {"mime_type": "audio/wav", "content": base64.b64encode(user_audio_bytes).decode("utf-8")} + ], + } + ], + output_data=[ + { + "role": "assistant", + "content": "Hey! I'm doing great, thanks for asking. How about you?", + "audio_parts": [ + {"mime_type": "audio/wav", "content": base64.b64encode(resp.audio_bytes).decode("utf-8")} + ], + } + ], + ) + return resp + +@llm(model_name="gpt-4o", model_provider="openai") +def describe_image(image_bytes): + import base64 + resp = ... # multimodal (vision) llm call here + LLMObs.annotate( + span=None, + input_data=[ + { + "role": "user", + "content": "What is in this image?", + "image_parts": [ + {"mime_type": "image/png", "content": base64.b64encode(image_bytes).decode("utf-8")} + ], + } + ], + output_data=[{"role": "assistant", "content": "The image shows a golden retriever puppy."}], + ) + return resp + {{< /code-block >}} +`audio_parts` または `image_parts` でアノテーションが付けられたメッセージは、トレースビューでインラインオーディオプレーヤーおよび画像としてレンダリングされます。 + +{{< img src="llm_observability/instrumentation/audio_example.png" alt="Agent Observability トレースビューの LLM スパン。USER の入力メッセージに「Hey, how are you?」というトランスクリプト付きのインラインオーディオプレーヤーが表示され、出力の ASSISTANT メッセージに「Click to play audio」というコントロールと「Hey!I'm doing great, thanks for asking.How about you?」というトランスクリプトが表示されています。" style="width:100%;" >}} + +{{< img src="llm_observability/instrumentation/image_example.png" alt="Agent Observability トレースビューの LLM スパン。入力の USER メッセージに「What is in this image?」というプロンプトが表示され、黒い子犬のインライン写真が添えられており、出力の ASSISTANT メッセージで、それが木の床の上にいる黒いラブラドール・レトリバーの子犬であると説明されています。" style="width:100%;" >}} + {{% /tab %}} {{% tab "Node.js" %}} -SDK には、入力、出力、メタデータを使用してスパンにアノテーションを付けるための `llmobs.annotate()` メソッドが用意されています。 +SDK には、入力、出力、メタデータでスパンにアノテーションを付けるためのメソッド `llmobs.annotate()` が用意されています。 -`LLMObs.annotate()` メソッドは次の引数を受け付けます。 +`LLMObs.annotate()` メソッドは、次の引数を受け入れます。 -{{% collapse-content title="引数" level="h4" expanded=false id="annotating-span-arguments" %}} +{{% collapse-content title="引数" level="h3" expanded=false id="annotating-span-arguments" %}} `span` : オプション - _スパン_ - **デフォルト**: 現在のアクティブなスパン -
アノテーションを付けるスパン。`span` が指定されていない場合 (関数ラッパーを使用している場合など)、SDK は現在のアクティブなスパンにアノテーションを付けます。 +
アノテーションを付けるスパン。`span` が指定されていない場合 (関数ラッパーを使用する場合など)、SDK は現在のアクティブなスパンにアノテーションを付けます。 `annotationOptions` : 必須 - _オブジェクト_ -
スパンにアノテーションを付けるための異なるタイプのデータのオブジェクトです。 +
スパンにアノテーションを付けるための、さまざまな種類のデータを含むオブジェクト。 -`annotationOptions` オブジェクトには、次の項目を含めることができます。 +`annotationOptions` オブジェクトには、次のものを含めることができます。 `inputData` : オプション - _JSON のシリアライズ可能な型、またはオブジェクトのリスト_ -
(非 LLM スパン用の) JSON のシリアライズ可能な型、または : `{role: "...", content: "..."}` という形式の辞書のリスト (LLM スパン用)。 **注**: 埋め込みスパンは特別なケースであり、`{text: "..."}` という形式の文字列またはオブジェクト (またはオブジェクトのリスト) が必要です。 +
JSON のシリアライズ可能な型 (LLM 以外のスパンの場合)、または辞書のリスト (形式: `{role: "...", content: "...", audioParts: [...], imageParts: [...]}` (LLM スパンの場合) のいずれか。`audioParts` および `imageParts` は、マルチモーダルスパン用のメディアオブジェクトのオプションのリストであり、それぞれ必須の `mimeType` と `content` (インラインで保持される base64 エンコードされたメディア) または `attachmentKey` のいずれか一方を持ちます。**注**: 埋め込みスパンは特殊なケースであり、`{text: "..."}` の形式の文字列またはオブジェクト (あるいはオブジェクトのリスト) が必要です。 `outputData` -オプション - _JSON のシリアライズ可能な型、またはオブジェクトのリスト_ -
(非 LLM スパン用の) JSON のシリアライズ可能な型、または `{role: "...", content: "..."}` という形式の辞書のリスト (LLM スパン用)。**注**: 取得スパンは特別なケースであり、`{text: "...", name: "...", score: number, id: "..."}` という形式の文字列またはオブジェクト (またはオブジェクトのリスト) が必要です。 +: オプション - _JSON のシリアライズ可能な型、またはオブジェクトのリスト_ +
JSON のシリアライズ可能な型 (LLM 以外のスパンの場合)、またはオブジェクトのリスト (形式: `{role: "...", content: "...", audioParts: [...], imageParts: [...]}`) (LLM スパンの場合)。`audioParts` および `imageParts` は、マルチモーダルスパン用のメディアオブジェクトのオプションのリストであり、それぞれ必須の `mimeType` と `content` (インラインで保持される base64 エンコードされたメディア) または `attachmentKey` のいずれか一方を持ちます。**注**: 検索スパンは特殊なケースであり、`{text: "...", name: "...", score: number, id: "..."}` の形式の文字列またはオブジェクト (あるいはオブジェクトのリスト) が必要です。 `metadata` : オプション - _オブジェクト_ -
スパンで記述された入力または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`model_temperature`、`max_tokens`、`top_k` など)。 +
スパンによって記述される入力操作または出力操作に関連するメタデータ情報としてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`model_temperature`、`max_tokens`、`top_k` など)。 `metrics` : オプション - _オブジェクト_ -
スパンで記述された操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値のオブジェクト (`input_tokens`、`output_tokens`、`total_tokens` など)。 +
スパンによって記述される操作に関連するメトリクスとしてユーザーが追加できる、JSON のシリアライズ可能なキーと数値のオブジェクト (`input_tokens`、`output_tokens`、`total_tokens` など)。 `tags` : オプション - _オブジェクト_ -
スパンのコンテキストに関するタグとしてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`session`、`environment`、`system`、`versioning` など)。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 +
スパンのコンテキストに関するタグとしてユーザーが追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト (`session`、`environment`、`system`、`versioning` など)。タグの詳細については、[タグの使用を開始する](/getting_started/tagging/)を参照してください。 + +`costTags` +: オプション - _文字列の配列_ +
生成される LLM のコストメトリクスおよびトークンメトリクスにカスタムタグとして伝播させるタグキーのリスト (`tags` で設定済みか、同じスパン上で以前にアノテーション付けされたもの)。既存のタグキーを参照していないエントリはスキップされます。詳細については、[コスト監視](#cost-monitoring)を参照してください。 {{% /collapse-content %}} @@ -1464,39 +1607,85 @@ function similaritySearch () { } similaritySearch = llmobs.wrap({ kind: 'retrieval', name: 'getRelevantDocs' }, similaritySearch) +function voiceTurn (userAudioBytes) { + const resp = ... // multimodal (audio) llm call here + llmobs.annotate({ + inputData: [ + { + role: "user", + content: "Hey, how are you?", // transcript of the input audio + audioParts: [{ mimeType: "audio/wav", content: userAudioBytes.toString("base64") }] + } + ], + outputData: [ + { + role: "assistant", + content: "Hey! I'm doing great, thanks for asking. How about you?", + audioParts: [{ mimeType: "audio/wav", content: resp.audioBuffer.toString("base64") }] + } + ] + }) + return resp +} +voiceTurn = llmobs.wrap({ kind: 'llm', modelName: 'gpt-audio', modelProvider: 'openai' }, voiceTurn) + +function describeImage (imageBytes) { + const resp = ... // multimodal (vision) llm call here + llmobs.annotate({ + inputData: [ + { + role: "user", + content: "What is in this image?", + imageParts: [{ mimeType: "image/png", content: imageBytes.toString("base64") }] + } + ], + outputData: [{ role: "assistant", content: "The image shows a golden retriever puppy." }] + }) + return resp +} +describeImage = llmobs.wrap({ kind: 'llm', modelName: 'gpt-4o', modelProvider: 'openai' }, describeImage) + {{< /code-block >}} +`audioParts` または `imageParts` でアノテーションが付けられたメッセージは、トレースビューでインラインオーディオプレーヤーおよび画像としてレンダリングされます。 + +{{< img src="llm_observability/instrumentation/audio_example.png" alt="Agent Observability トレースビューの LLM スパン。USER の入力メッセージに「Hey, how are you?」というトランスクリプト付きのインラインオーディオプレーヤーが表示され、出力の ASSISTANT メッセージに「Click to play audio」というコントロールと「Hey!I'm doing great, thanks for asking.How about you?」というトランスクリプトが表示されています。" style="width:100%;" >}} + +{{< img src="llm_observability/instrumentation/image_example.png" alt="Agent Observability トレースビューの LLM スパン。入力の USER メッセージに「What is in this image?」というプロンプトが表示され、黒い子犬のインライン写真が添えられており、出力の ASSISTANT メッセージで、それが木の床の上にいる黒いラブラドール・レトリバーの子犬であると説明されています。" style="width:100%;" >}} + +OpenAI の音声チャット補完の場合、`audioParts` も [Datadog の LLM インテグレーション](/llm_observability/instrumentation/auto_instrumentation/)によって自動的にキャプチャされます。手動でのアノテーション付けは不要です。`audioParts` とは異なり、`imageParts` は現在自動的にキャプチャされず、手動でアノテーションを付ける必要があります。自動キャプチャは将来のリリースで予定されています。 + {{% /tab %}} {{% tab "Java" %}} -SDK には、入力、出力、メトリクス、メタデータを使用してスパンにアノテーションを付けるためのいくつかのメソッドが用意されています。 +SDK には、入力、出力、メトリクス、メタデータでスパンにアノテーションを付けるための複数のメソッドが用意されています。 ### 入力と出力のアノテーション付け {#annotating-inputs-and-outputs} -`LLMObsSpan` インターフェイスの `annotateIO()` メンバーメソッドを使用して、`LLMObsSpan` に構造化された入力および出力データを追加します。ここにはオプションの引数と LLM メッセージオブジェクトが含まれます。 +`LLMObsSpan` インターフェースの `annotateIO()` メンバーメソッドを使用して、構造化された入力データと出力データを `LLMObsSpan` に追加します。これには、オプションの引数と LLM メッセージオブジェクトが含まれます。 #### 引数 {#arguments} -引数が null または空の場合、処理は何も行われません。たとえば、`inputData` が空ではない文字列で、`outputData` が null の場合は、`inputData` のみが記録されます。 +引数が null または空の場合、何も起こりません。たとえば、`inputData` が空ではない文字列で `outputData` が null の場合、`inputData` のみが記録されます。 `inputData` -: オプション - _文字列_ または _List_ -
文字列 (非 LLM スパン用)、または LLM スパン用の `LLMObs.LLMMessage` のリスト。 +: オプション - _String_ または _List_ +
文字列 (LLM 以外のスパンの場合) または `LLMObs.LLMMessage` のリスト (LLM スパンの場合) のいずれか。 `outputData` -: オプション - _文字列_ または _List_ -
文字列 (非 LLM スパン用)、または LLM スパン用の `LLMObs.LLMMessage` のリスト。 +: オプション - _String_ または _List_ +
文字列 (LLM 以外のスパンの場合) または `LLMObs.LLMMessage` のリスト (LLM スパンの場合) のいずれか。 #### LLM メッセージ {#llm-messages} -LLM スパンは、`LLMObs.LLMMessage` オブジェクトを使用して LLM メッセージでアノテーションを付ける必要があります。 +LLM スパンには、`LLMObs.LLMMessage` オブジェクトを使用して LLM メッセージをアノテーションとして付ける必要があります。 `LLMObs.LLMMessage` オブジェクトは、次の引数を指定して `LLMObs.LLMMessage.from()` を呼び出すことでインスタンス化できます。 `role` -: 必須 - _文字列_ -
メッセージの作成者の役割を記述する文字列。 +: 必須 - _String_ +
メッセージの作成者の役割を説明する文字列。 `content` -: 必須 - _文字列_ +: 必須 - _String_
メッセージの内容を含む文字列。 #### 例 {#example-20} @@ -1528,17 +1717,17 @@ public class MyJavaClass { #### メトリクスの一括追加 {#bulk-add-metrics} -`LLMObsSpan` インターフェイスの `setMetrics()` メンバーメソッドは、複数のメトリクスを一括でアタッチするための次の引数を受け付けます。 +`LLMObsSpan` インターフェースの `setMetrics()` メンバーメソッドは、複数のメトリクスを一括で付与するために次の引数を受け入れます。 ##### 引数 {#arguments-1} `metrics` : 必須 - _Map_ -
スパンで記述された操作に関連するメトリクスを記録するためにユーザーが追加できる、JSON のシリアライズ可能なキーと数値のマップ (たとえば、`input_tokens`、`output_tokens`、または`total_tokens`)。 +
スパンによって記述される操作に関連するメトリクスを記録するためにユーザーが追加できる、JSON のシリアライズ可能なキーと数値のマップ (`input_tokens`、`output_tokens`、`total_tokens` など)。 -#### 単一のメトリクスを追加 {#add-a-single-metric} +#### 単一のメトリクスの追加 {#add-a-single-metric} -`LLMObsSpan` インターフェイスの `setMetric()` メンバーメソッドは、単一のメトリクスをアタッチするための次の引数を受け付けます。 +`setMetric()` インターフェースの `LLMObsSpan` メンバーメソッドは、単一のメトリクスを付与するために次の引数を受け入れます。 ##### 引数 {#arguments-2} @@ -1574,30 +1763,30 @@ public class MyJavaClass { ### タグの追加 {#adding-tags} -タグの詳細については、[タグの概要][1] を参照してください。 +タグの詳細については、[タグの使用を開始する][1]を参照してください。 #### タグの一括追加 {#bulk-add-tags} -`LLMObsSpan` インターフェイスの `setTags()` メンバーメソッドは、複数のタグを一括でアタッチするための次の引数を受け付けます。 +`setTags()` インターフェースの `LLMObsSpan` メンバーメソッドは、複数のタグを一括で付与するために次の引数を受け入れます。 ##### 引数 {#arguments-3} `tags` : 必須 - _Map_ -
スパンのコンテキストを説明するためにユーザーがタグとして追加できる JSON のシリアライズ可能なキーと値のペアのマップ (たとえば、`session`、`environment`、`system`、または`version`)。 +
スパンのコンテキストを記述するためにユーザーがタグとして追加できる、JSON のシリアライズ可能なキーと値のペアのマップ (`session`、`environment`、`system`、`version` など)。 -#### 単一のタグを追加 {#add-a-single-tag} +#### 単一のタグの追加 {#add-a-single-tag} -`LLMObsSpan` インターフェイスの `setTag()` メンバーメソッドは、単一のタグをアタッチするための次の引数を受け付けます。 +`setTag()` インターフェースの `LLMObsSpan` メンバーメソッドは、単一のタグを付与するために次の引数を受け入れます。 ##### 引数 {#arguments-4} `key` -: 必須 - _文字列_ +: 必須 - _String_
タグのキー。 `value` -: 必須 - _int_、_long_、_double_、_boolean_、または _文字列_ +: 必須 - _int_、_long_、_double_、_boolean_、または _String_
タグの値。 #### 例 {#examples-1} @@ -1624,33 +1813,33 @@ public class MyJavaClass { #### Throwable の追加 (推奨) {#adding-a-throwable-recommended} -`LLMObsSpan` インターフェイスの `addThrowable()` メンバーメソッドは、スタックトレースを持つ Throwable をアタッチするための次の引数を受け付けます。 +`addThrowable()` インターフェースの `LLMObsSpan` メンバーメソッドは、スタックトレース付きの throwable を付与するために次の引数を受け入れます。 ##### 引数 {#arguments-5} `throwable` : 必須 - _Throwable_ -
発生した Throwable/Exception。 +
発生した throwable/例外。 #### エラーメッセージの追加 {#adding-an-error-message} -`LLMObsSpan` インターフェイスの `setErrorMessage()` メンバーメソッドは、エラー文字列をアタッチするための次の引数を受け付けます。 +`setErrorMessage()` インターフェースの `LLMObsSpan` メンバーメソッドは、エラー文字列を付与するために次の引数を受け入れます。 ##### 引数 {#arguments-6} `errorMessage` -: 必須 - _文字列_ -
エラーメッセージ。 +: 必須 - _String_ +
エラーのメッセージ。 #### エラーフラグの設定 {#setting-an-error-flag} -`LLMObsSpan` インターフェイスの `setError()` メンバーメソッドは、操作にエラーがあることを示すための次の引数を受け付けます。 +`setError()` インターフェースの `LLMObsSpan` メンバーメソッドは、操作のエラーを示すために次の引数を受け入れます。 ##### 引数 {#arguments-7} `error` : 必須 - _boolean_ -
`true` の場合、スパンでエラーが発生しています。 +
スパンがエラーになった場合は `true`。 #### 例 {#examples-2} @@ -1676,11 +1865,11 @@ public class MyJavaClass { ### メタデータのアノテーション付け {#annotating-metadata} -`LLMObsSpan` インターフェイスの `setMetadata()` メンバーメソッドは、次の引数を受け付けます。 +`setMetadata()` インターフェースの `LLMObsSpan` メンバーメソッドは、次の引数を受け入れます。 `metadata` : 必須 - _Map_ -
スパンによって記述された入力または出力操作に関連するメタデータを含む、JSON のシリアライズ可能なキーと値のペアのマップです。 +
スパンによって記述される入力操作または出力操作に関連するメタデータを含む、JSON のシリアライズ可能なキーと値のペアのマップ。 #### 例 {#example-21} @@ -1707,28 +1896,32 @@ public class MyJavaClass { {{% /tab %}} {{< /tabs >}} -### 自動インスツルメンテーションスパンのアノテーション付け{#annotating-auto-instrumented-spans} +### 自動インスツルメンテーションスパンのアノテーション付け {#annotating-auto-instrumented-spans} {{< tabs >}} {{% tab "Python" %}} SDK の `LLMObs.annotation_context()` メソッドは、アノテーションコンテキストがアクティブな間に開始されたすべての自動インスツルメンテーションスパンを変更するために使用できるコンテキストマネージャーを返します。 -`LLMObs.annotation_context()` メソッドは次の引数を受け付けます。 +`LLMObs.annotation_context()` メソッドは、次の引数を受け入れます。 {{% collapse-content title="引数" level="h4" expanded=false id="annotating-autoinstrumented-span-arguments" %}} `name` -: オプション - _str_ -
アノテーションコンテキスト内で開始される自動インスツルメンテーションされたスパンのスパン名をオーバーライドする名前です。 +: オプション - _文字列_ +
アノテーションコンテキスト内で開始されるすべての自動インスツルメンテーションスパンのスパン名を上書きする名前。 `prompt` : オプション - _辞書_ -
LLM 呼び出しに使用されるプロンプトを表す辞書です。完全なスキーマとサポートされているキーについては、[プロンプトオブジェクト](#prompt-tracking-arguments)のドキュメントを参照してください。`Prompt`オブジェクトを `ddtrace.llmobs.utils` からインポートして、`prompt` 引数として渡すこともできます。**注**: この引数は LLM スパンにのみ適用されます。 +
LLM 呼び出しに使用されるプロンプトを表す辞書。完全なスキーマとサポートされているキーについては、[Prompt オブジェクト](#prompt-tracking-arguments)のドキュメントを参照してください。`Prompt` オブジェクトを `ddtrace.llmobs.utils` からインポートし、`prompt` 引数として渡すこともできます。**注**: この引数は LLM スパンにのみ適用されます。 `tags` : オプション - _辞書_ -
ユーザーがタグとしてスパンに追加できる、JSON のシリアライズ可能なキーと値のペアの辞書です。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 +
ユーザーがスパンにタグとして追加できる、JSON のシリアライズ可能なキーと値のペアの辞書。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの使用を開始する](/getting_started/tagging/)を参照してください。 + +`cost_tags` +: オプション - _文字列のリスト_ +
生成される LLM のコストメトリクスおよびトークンメトリクスにカスタムタグとして伝播させるタグキーのリスト。各エントリは、スパン開始時に `tags` に存在するキー (同じコンテキストまたは親コンテキストに提供されたもの) を参照する必要があります。`LLMObs.annotate()` で後から追加されたタグキーは保持されません。詳細については、[コスト監視](#cost-monitoring)を参照してください。 {{% /collapse-content %}} @@ -1766,19 +1959,23 @@ def rag_workflow(user_question): {{% tab "Node.js" %}} -SDK の `llmobs.annotationContext()` は、コールバック関数のスコープ内で開始されたすべての自動インスツルメンテーションスパンを変更するために使用できるコールバック関数を受け付けます。 +SDK の `llmobs.annotationContext()` は、コールバック関数のスコープ内で開始されたすべての自動インスツルメンテーションスパンを変更するために使用できるコールバック関数を受け入れます。 -`llmobs.annotationContext()` メソッドは、最初の引数で次のオプションを受け付けます。 +`llmobs.annotationContext()` メソッドは、最初の引数で次のオプションを受け入れます。 {{% collapse-content title="オプション" level="h4" expanded=false id="annotating-autoinstrumented-span-arguments" %}} `name` -: オプション - _str_ -
アノテーションコンテキスト内で開始される自動インスツルメンテーションされたスパンのスパン名をオーバーライドする名前です。 +: オプション - _文字列_ +
アノテーションコンテキスト内で開始されるすべての自動インスツルメンテーションスパンのスパン名を上書きする名前。 `tags` : オプション - _オブジェクト_ -
ユーザーがスパンにタグとして追加できる JSON のシリアライズ可能なキーと値のペアのオブジェクトです。キーの例: `session`、`env`、`system`、および `version`。タグの詳細については、[タグの概要](/getting_started/tagging/)を参照してください。 +
ユーザーがスパンにタグとして追加できる、JSON のシリアライズ可能なキーと値のペアのオブジェクト。キーの例: `session`、`env`、`system`、および`version`。タグの詳細については、[タグの使用を開始する](/getting_started/tagging/)を参照してください。 + +`costTags` +: オプション - _文字列の配列_ +
生成される LLM のコストメトリクスおよびトークンメトリクスにカスタムタグとして伝播させるタグキーのリスト。各エントリは、スパン開始時に `tags` に存在するキー (同じコンテキストまたは親コンテキストに提供されたもの) を参照する必要があります。`llmobs.annotate()` で後から追加されたタグキーは保持されません。詳細については、[コスト監視](#cost-monitoring)を参照してください。 {{% /collapse-content %}} @@ -1806,40 +2003,40 @@ function ragWorkflow(userQuestion) { {{% /tab %}} {{< /tabs >}} -## プロンプト追跡 {#prompt-tracking} +## プロンプト追跡{#prompt-tracking} -構造化されたプロンプトメタデータを LLM スパンにアタッチすることにより、結果を再現し、変更を監査し、バージョン間でプロンプトのパフォーマンスを比較できるようにします。テンプレートを使用する際、LLM Observability は、テンプレートの内容の変更に基づいて[バージョン追跡](#version-tracking)も提供します。 +構造化されたプロンプトメタデータを LLM スパンに付与することで、結果の再現、変更の監査、およびバージョン間でのプロンプトパフォーマンスの比較が可能になります。テンプレートを使用する場合、Agent Observability はテンプレートコンテンツの変更に基づいた[バージョン追跡](#version-tracking)も提供します。 {{< tabs >}} {{% tab "Python" %}} -LLM 呼び出しの前にプロンプトメタデータをアタッチするには、`LLMObs.annotation_context(prompt=...)` を使用します。スパンアノテーションの詳細については、[スパンの強化](#enriching-spans)を参照してください。 +LLM 呼び出しの前にプロンプトメタデータを付与するには、`LLMObs.annotation_context(prompt=...)` を使用します。スパンアノテーションの詳細については、[スパンのエンリッチメント](#enriching-spans)を参照してください。 -#### 引数 {#arguments-8} +#### 引数{#arguments-8} -{{% collapse-content title="引数" level="h4" expanded=false id="prompt-tracking-arguments" %}} +{{% collapse-content title="引数" level="h5" expanded=false id="prompt-tracking-arguments" %}} `prompt` : 必須 - 辞書 -
次のプロンプトスキーマに従った型付き辞書。 +
下記のプロンプトスキーマに従う型付き辞書。 {{% /collapse-content %}} -{{% collapse-content title="プロンプト構造" level="h4" expanded=false id="prompt-structure" %}} +{{% collapse-content title="プロンプト構造" level="h5" expanded=false id="prompt-structure" %}} サポートされているキー: - `id` (str): このプロンプトの論理識別子。`ml_app` ごとに一意である必要があります。デフォルトは `{ml_app}-unnamed_prompt` です。 - `version` (str): プロンプトのバージョンタグ (例: "1.0.0")。詳細については、[バージョン追跡](#version-tracking)を参照してください。 -- `variables`(Dict[str, str]): テンプレートのプレースホルダーに入力するために使用される変数。 -- `template`(str): プレースホルダーを含むテンプレート文字列 (例: `"Translate {{text}} to {{lang}}")。 +- `variables`(Dict[str, str]): テンプレートのプレースホルダーに値を入力するために使用される変数。 +- `template`(str): プレースホルダーを含むテンプレート文字列 (例: `"Translate {{text}} to {{lang}}\"`)。 - `chat_template`(List[Message]): マルチメッセージテンプレート形式。`{ "role": "", "content": "