newrelic.com
Open in
urlscan Pro
151.101.66.217
Public Scan
Submitted URL: https://get.newrelic.com/MzQxLVhLUC0zMTAAAAGG4RidaO9SdIwjuqcNOy7YSR_ah86w383SGxlMYnD9S7RqB_bVg0yfrCZbGrWuZTs5MXROHVc=
Effective URL: https://newrelic.com/blog/nerdlog/codestream-code-level-metrics?utm_source=marketo&utm_medium=email&utm_campaign=amer...
Submission: On September 15 via api from US — Scanned from DE
Effective URL: https://newrelic.com/blog/nerdlog/codestream-code-level-metrics?utm_source=marketo&utm_medium=email&utm_campaign=amer...
Submission: On September 15 via api from US — Scanned from DE
Form analysis
4 forms found in the DOMPOST /search
<form class="flex relative" method="post" action="/search" __bizdiag="-906336856" __biza="WJ__">
<label class="sr-only" for="header-search">Search</label>
<input class="js-full-text-search col-start-1 row-start-1 w-full !pr-16" type="search" id="header-search" name="search" placeholder="What are you looking for?" autocomplete="on" autocorrect="off" autocapitalize="off" value="">
<div class="absolute right-10 flex items-center justify-center h-full w-16">
<button class="js-search-form-submit btn-text">
<span aria-hidden="true">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.93 20.861A6.93 6.93 0 1 0 13.93 7a6.93 6.93 0 0 0 0 13.861Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path>
<path d="m18.782 18.782 3.466 3.465.877.878 1.125 1.125.75.75" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path>
</svg>
</span>
<span class="sr-only">Submit</span>
</button>
</div>
<button class="js-search-form-cancel btn-text !bg-transparent text-nr-black dark:text-nr-white" aria-label="close" type="button">
<span aria-hidden="true">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="m8.928 8.928 14.144 14.144m0-14.144L8.928 23.072" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path>
</svg>
</span>
</button>
</form>
GET /blog/search
<form class="relative w-full max-w-xl large:max-w-3xl" method="get" action="/blog/search" __bizdiag="115" __biza="WJ__">
<label class="sr-only" for="blog-header-search-input"> Search the blog </label>
<input class="js-blog-header-search-input w-full !pr-20" id="blog-header-search-input" type="search" placeholder="Type your search here" name="s">
<button class="js-blog-header-search-submit absolute right-0 top-0 flex items-center justify-center h-full w-16 p-0 bg-transparent text-nr-black" type="submit">
<span aria-hidden="true">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.93 20.861A6.93 6.93 0 1 0 13.93 7a6.93 6.93 0 0 0 0 13.861Z" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path>
<path d="m18.782 18.782 3.466 3.465.877.878 1.125 1.125.75.75" stroke="currentColor" stroke-width="2" stroke-linejoin="round"></path>
</svg>
</span>
<span class="sr-only">Submit</span>
</button>
</form>
<form id="mktoForm_2440" class="mktoForm mktoHasWidth mktoLayoutLeft" novalidate="novalidate" style="font-family: inherit; font-size: 13px; color: rgb(51, 51, 51); width: 2194px;" __bizdiag="1193416728" __biza="WJ__">
<style type="text/css"></style>
<div class="mktoFormRow">
<div class="mktoFieldDescriptor mktoFormCol" style="margin-bottom: 5px;">
<div class="mktoOffset" style="width: 5px;"></div>
<div class="mktoFieldWrap mktoRequiredField"><label for="Email" id="LblEmail" class="mktoLabel mktoHasWidth" style="width: 107px;">
<div class="mktoAsterix">*</div>Email:
</label>
<div class="mktoGutter mktoHasWidth" style="width: 5px;"></div><input id="Email" name="Email" placeholder="Business Email" maxlength="255" aria-labelledby="LblEmail InstructEmail" type="email"
class="mktoField mktoEmailField mktoHasWidth mktoRequired" aria-required="true" style="width: 150px;"><span id="InstructEmail" tabindex="-1" class="mktoInstruction"></span>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow">
<div class="mktoFieldDescriptor mktoFormCol" style="margin-bottom: 5px;">
<div class="mktoOffset" style="width: 5px;"></div>
<div class="mktoFieldWrap mktoRequiredField"><label for="Country" id="LblCountry" class="mktoLabel mktoHasWidth" style="width: 111px;">
<div class="mktoAsterix">*</div>Country:
</label>
<div class="mktoGutter mktoHasWidth" style="width: 5px;"></div><select id="Country" name="Country" aria-labelledby="LblCountry InstructCountry" class="mktoField mktoHasWidth mktoRequired" aria-required="true" style="width: 150px;">
<option value="">Select a country</option>
<option value="United States">United States</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
<option value="Andorra">Andorra</option>
<option value="Angola">Angola</option>
<option value="Anguilla">Anguilla</option>
<option value="Antarctica">Antarctica</option>
<option value="Antigua and Barbuda">Antigua and Barbuda</option>
<option value="Argentina">Argentina</option>
<option value="Armenia">Armenia</option>
<option value="Aruba">Aruba</option>
<option value="Ascension Island">Ascension Island</option>
<option value="Australia">Australia</option>
<option value="Austria">Austria</option>
<option value="Azerbaijan">Azerbaijan</option>
<option value="Bahamas">Bahamas</option>
<option value="Bahrain">Bahrain</option>
<option value="Bangladesh">Bangladesh</option>
<option value="Barbados">Barbados</option>
<option value="Belarus">Belarus</option>
<option value="Belgium">Belgium</option>
<option value="Belize">Belize</option>
<option value="Benin">Benin</option>
<option value="Bermuda">Bermuda</option>
<option value="Bhutan">Bhutan</option>
<option value="Bolivia">Bolivia</option>
<option value="Bosnia-Herzegovina">Bosnia-Herzegovina</option>
<option value="Botswana">Botswana</option>
<option value="Bouvet Island">Bouvet Island</option>
<option value="Brazil">Brazil</option>
<option value="Brunei">Brunei</option>
<option value="Bulgaria">Bulgaria</option>
<option value="Burkina Faso">Burkina Faso</option>
<option value="Burundi">Burundi</option>
<option value="Cambodia">Cambodia</option>
<option value="Cameroon">Cameroon</option>
<option value="Canada">Canada</option>
<option value="Cape Verde">Cape Verde</option>
<option value="Cayman Islands">Cayman Islands</option>
<option value="Central African Republic">Central African Republic</option>
<option value="Chad">Chad</option>
<option value="Chile">Chile</option>
<option value="China">China</option>
<option value="Christmas Island">Christmas Island</option>
<option value="Cocos (Keeling) Islands">Cocos (Keeling) Islands</option>
<option value="Colombia">Colombia</option>
<option value="Comoros">Comoros</option>
<option value="Congo, Democratic Republic">Congo, Democratic Republic</option>
<option value="Cook Islands">Cook Islands</option>
<option value="Costa Rica">Costa Rica</option>
<option value="Croatia">Croatia</option>
<option value="Cuba">Cuba</option>
<option value="Curaçao">Curaçao</option>
<option value="Cyprus">Cyprus</option>
<option value="Czech Republic">Czech Republic</option>
<option value="Republic of the Congo">Republic of the Congo</option>
<option value="Denmark">Denmark</option>
<option value="Djibouti">Djibouti</option>
<option value="Dominica">Dominica</option>
<option value="Dominican Republic">Dominican Republic</option>
<option value="Timor-Leste">Timor-Leste</option>
<option value="East Timor Timor-Leste">East Timor Timor-Leste</option>
<option value="Ecuador">Ecuador</option>
<option value="Egypt">Egypt</option>
<option value="El Salvador">El Salvador</option>
<option value="Equatorial Guinea">Equatorial Guinea</option>
<option value="Eritrea">Eritrea</option>
<option value="Estonia">Estonia</option>
<option value="Ethiopia">Ethiopia</option>
<option value="Falkland Islands (Malvinas)">Falkland Islands (Malvinas)</option>
<option value="Faroe Islands">Faroe Islands</option>
<option value="Fiji">Fiji</option>
<option value="Finland">Finland</option>
<option value="France">France</option>
<option value="French Guiana">French Guiana</option>
<option value="French Metropolitan">French Metropolitan</option>
<option value="French Polynesia">French Polynesia</option>
<option value="French Southern Territories">French Southern Territories</option>
<option value="Gabon">Gabon</option>
<option value="Gambia">Gambia</option>
<option value="Georgia">Georgia</option>
<option value="Germany">Germany</option>
<option value="Ghana">Ghana</option>
<option value="Gibraltar">Gibraltar</option>
<option value="Greece">Greece</option>
<option value="Greenland">Greenland</option>
<option value="Grenada">Grenada</option>
<option value="Guadeloupe">Guadeloupe</option>
<option value="Guam (USA)">Guam (USA)</option>
<option value="Guatemala">Guatemala</option>
<option value="Guernsey">Guernsey</option>
<option value="Guinea">Guinea</option>
<option value="Guinea Bissau">Guinea Bissau</option>
<option value="Guyana">Guyana</option>
<option value="Haiti">Haiti</option>
<option value="Heard and Mc Donald Islands">Heard and Mc Donald Islands</option>
<option value="Holy See (Vatican City State)">Holy See (Vatican City State)</option>
<option value="Honduras">Honduras</option>
<option value="Hong Kong">Hong Kong</option>
<option value="Hungary">Hungary</option>
<option value="Iceland">Iceland</option>
<option value="India">India</option>
<option value="Indonesia">Indonesia</option>
<option value="Iran">Iran</option>
<option value="Iraq">Iraq</option>
<option value="Ireland">Ireland</option>
<option value="Isle of Man">Isle of Man</option>
<option value="Israel">Israel</option>
<option value="Italy">Italy</option>
<option value="Ivory Coast">Ivory Coast</option>
<option value="Jamaica">Jamaica</option>
<option value="Japan">Japan</option>
<option value="Jersey">Jersey</option>
<option value="Jordan">Jordan</option>
<option value="Kazakhstan">Kazakhstan</option>
<option value="Kenya">Kenya</option>
<option value="Kiribati">Kiribati</option>
<option value="North Korea">North Korea</option>
<option value="Korea, South">Korea, South</option>
<option value="Kuwait">Kuwait</option>
<option value="Kyrgyzstan">Kyrgyzstan</option>
<option value="Laos">Laos</option>
<option value="Latvia">Latvia</option>
<option value="Lebanon">Lebanon</option>
<option value="Lesotho">Lesotho</option>
<option value="Liberia">Liberia</option>
<option value="Libya">Libya</option>
<option value="Liechtenstein">Liechtenstein</option>
<option value="Lithuania">Lithuania</option>
<option value="Luxembourg">Luxembourg</option>
<option value="Macao">Macao</option>
<option value="Macedonia">Macedonia</option>
<option value="Madagascar">Madagascar</option>
<option value="Malawi">Malawi</option>
<option value="Malaysia">Malaysia</option>
<option value="Maldives">Maldives</option>
<option value="Mali">Mali</option>
<option value="Malta">Malta</option>
<option value="Marshall Islands">Marshall Islands</option>
<option value="Martinique">Martinique</option>
<option value="Mauritania">Mauritania</option>
<option value="Mauritius">Mauritius</option>
<option value="Mayotte">Mayotte</option>
<option value="Mexico">Mexico</option>
<option value="Micronesia">Micronesia</option>
<option value="Moldova">Moldova</option>
<option value="Monaco">Monaco</option>
<option value="Mongolia">Mongolia</option>
<option value="Montenegro">Montenegro</option>
<option value="Montserrat">Montserrat</option>
<option value="Morocco">Morocco</option>
<option value="Mozambique">Mozambique</option>
<option value="Myanmar">Myanmar</option>
<option value="Namibia">Namibia</option>
<option value="Nauru">Nauru</option>
<option value="Nepal">Nepal</option>
<option value="Netherlands">Netherlands</option>
<option value="Netherlands Antilles">Netherlands Antilles</option>
<option value="New Caledonia">New Caledonia</option>
<option value="New Zealand">New Zealand</option>
<option value="Nicaragua">Nicaragua</option>
<option value="Niger">Niger</option>
<option value="Nigeria">Nigeria</option>
<option value="Niue">Niue</option>
<option value="Norfolk Island">Norfolk Island</option>
<option value="Northern Mariana Islands">Northern Mariana Islands</option>
<option value="Norway">Norway</option>
<option value="Oman">Oman</option>
<option value="Pakistan">Pakistan</option>
<option value="Palau">Palau</option>
<option value="Panama">Panama</option>
<option value="Papua New Guinea">Papua New Guinea</option>
<option value="Paraguay">Paraguay</option>
<option value="Peru">Peru</option>
<option value="Philippines">Philippines</option>
<option value="Pitcairn">Pitcairn</option>
<option value="Poland">Poland</option>
<option value="Portugal">Portugal</option>
<option value="Puerto Rico">Puerto Rico</option>
<option value="Qatar">Qatar</option>
<option value="Réunion">Réunion</option>
<option value="Romania">Romania</option>
<option value="Russian Federation">Russian Federation</option>
<option value="Rwanda">Rwanda</option>
<option value="Saint Helena">Saint Helena</option>
<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
<option value="Saint Lucia">Saint Lucia</option>
<option value="Saint Vincent and Grenadines">Saint Vincent and Grenadines</option>
<option value="Samoa">Samoa</option>
<option value="San Marino">San Marino</option>
<option value="Sao Tome and Principe">Sao Tome and Principe</option>
<option value="Saudi Arabia">Saudi Arabia</option>
<option value="Senegal">Senegal</option>
<option value="Serbia">Serbia</option>
<option value="Seychelles">Seychelles</option>
<option value="Sierra Leone">Sierra Leone</option>
<option value="Singapore">Singapore</option>
<option value="Slovakia">Slovakia</option>
<option value="Slovenia">Slovenia</option>
<option value="Solomon Islands">Solomon Islands</option>
<option value="Somalia">Somalia</option>
<option value="South Africa">South Africa</option>
<option value="South Sudan">South Sudan</option>
<option value="South Georgia and South Sandwich Islands">South Georgia and South Sandwich Islands</option>
<option value="Spain">Spain</option>
<option value="Sri Lanka">Sri Lanka</option>
<option value="Saint Pierre and Miquelon">Saint Pierre and Miquelon</option>
<option value="Sudan">Sudan</option>
<option value="Suriname">Suriname</option>
<option value="Svalbard and Jan Mayen">Svalbard and Jan Mayen</option>
<option value="Swaziland">Swaziland</option>
<option value="Sweden">Sweden</option>
<option value="Switzerland">Switzerland</option>
<option value="Syria">Syria</option>
<option value="Taiwan (Republic of China)">Taiwan (Republic of China)</option>
<option value="Tajikistan">Tajikistan</option>
<option value="Tanzania">Tanzania</option>
<option value="Thailand">Thailand</option>
<option value="Togo">Togo</option>
<option value="Tokelau">Tokelau</option>
<option value="Tonga">Tonga</option>
<option value="Trinidad and Tobago">Trinidad and Tobago</option>
<option value="Tunisia">Tunisia</option>
<option value="Turkey">Turkey</option>
<option value="Turkmenistan">Turkmenistan</option>
<option value="Turks and Caicos Islands">Turks and Caicos Islands</option>
<option value="Tuvalu">Tuvalu</option>
<option value="U.S. Minor Outlying Islands">U.S. Minor Outlying Islands</option>
<option value="Uganda">Uganda</option>
<option value="Ukraine">Ukraine</option>
<option value="United Arab Emirates">United Arab Emirates</option>
<option value="United Kingdom">United Kingdom</option>
<option value="United States">United States</option>
<option value="Uruguay">Uruguay</option>
<option value="Uzbekistan">Uzbekistan</option>
<option value="Vanuatu">Vanuatu</option>
<option value="Venezuela">Venezuela</option>
<option value="Vietnam">Vietnam</option>
<option value="Virgin Islands">Virgin Islands</option>
<option value="Wallis and Futuna">Wallis and Futuna</option>
<option value="Western Sahara">Western Sahara</option>
<option value="Yemen">Yemen</option>
<option value="Zambia">Zambia</option>
<option value="Zimbabwe">Zimbabwe</option>
</select><span id="InstructCountry" tabindex="-1" class="mktoInstruction"></span>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow">
<div class="mktoPlaceholder mktoPlaceholderHtmlText_2018-05-22T18 099Z"></div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow">
<div class="mktoPlaceholder mktoPlaceholderblogDigestOptin"></div>
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="initialHTTPReferrer" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="utm_campaign" class="mktoField mktoFieldDescriptor mktoFormCol" value="amer-fy23-q2-changelog" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="utm_content" class="mktoField mktoFieldDescriptor mktoFormCol" value="changelog" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="utm_source" class="mktoField mktoFieldDescriptor mktoFormCol" value="marketo" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="utm_term" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="utm_medium" class="mktoField mktoFieldDescriptor mktoFormCol" value="email" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="clearbitEnrichedAt" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="clearbitFormStatus" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="clearbitStatus" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="formInitialMedium" class="mktoField mktoFieldDescriptor mktoFormCol" value="email" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="GACLIENTID__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow"><input type="hidden" name="GATRACKID__c" class="mktoField mktoFieldDescriptor mktoFormCol" value="UA-3047412-33" style="margin-bottom: 5px;">
<div class="mktoClear"></div>
</div>
<div class="mktoFormRow">
<div class="mktoPlaceholder mktoPlaceholderHtmlText_2019-08-28T19 736Z"></div>
<div class="mktoClear"></div>
</div>
<div class="mktoButtonRow"><span class="mktoButtonWrap mktoNative" style="margin-left: 110px;"><button type="submit" class="mktoButton">Subscribe</button></span></div><input type="hidden" name="formid" class="mktoField mktoFieldDescriptor"
value="2440"><input type="hidden" name="munchkinId" class="mktoField mktoFieldDescriptor" value="341-XKP-310"><input type="hidden" name="formInquirySource" class="mktoField mktoFieldDescriptor" value="marketo"><input type="hidden"
name="formInquiryMedium" class="mktoField mktoFieldDescriptor" value="email"><input type="hidden" name="formInquiryCampaign" class="mktoField mktoFieldDescriptor" value="amer-fy23-q2-changelog"><input type="hidden" name="formInquiryGCLID"
class="mktoField mktoFieldDescriptor" value="false"><input type="hidden" name="formInquiryMPC" class="mktoField mktoFieldDescriptor" value="false"><input type="hidden" name="contentFormPage" class="mktoField mktoFieldDescriptor"
value="https://newrelic.com/blog/nerdlog/codestream-code-level-metrics?utm_source=marketo&utm_medium=email&utm_campaign=amer-fy23-q2-changelog&utm_content=changelog&mkt_tok=MzQxLVhLUC0zMTAAAAGG4RidaIIl4C4DY34wd51pmN4O1Q506SVawhDheKo_iW-mWhhBsBjmfFGeO5Hf5w9salXjnnEUDdkHJb9ln0_unY-XajbR9tlgosHQyIzZ9YWn5g">
</form>
<form class="mktoForm mktoHasWidth mktoLayoutLeft" novalidate="novalidate" style="font-family: inherit; font-size: 13px; color: rgb(51, 51, 51); visibility: hidden; position: absolute; top: -500px; left: -1000px; width: 1600px;" __bizdiag="523989951"
__biza="WJ__"></form>
Text Content
Skip to main content Discover the top benefits of observability See the research Search toggle Main navigation menu, 5 items Search Submit * Platform New Relic Put all over the place in its place—monitor your entire stack on a single platform. Explore the platform Explore the platform * 470 integrations pre-built for you Full-stack monitoring * Application Monitoring (APM) * Infrastructure Monitoring * Kubernetes & Pixie * Log Management * Network Monitoring * Browser Monitoring * Mobile Monitoring * Synthetics Monitoring * Serverless Monitoring * Model Performance Monitoring Observability Experiences * CodeStream * Error Tracking * Vulnerability Management * Explorer * AIOps Data Ingest & Insights * Integrations * Dashboards * Alerts * OpenTelemetry * Pricing * Solutions Featured Customers * Bangkok Bank Scales rapidly and seamlessly to meet increased future demand * Workiva Takes observability to a new level * Viewpoint Improves engineering efficiency and customer transparency Read all case studies Read all case studies By use case * DevOps * Cloud Adoption * Tool Consolidation * Digital Customer Experience * Open Source By Industry * Ecommerce and Retail * Healthcare * Media & Entertainment * New Relic for Startups * Nonprofit * Public Sector By Technology * Amazon Web Services * Google Cloud Platform * Microsoft Azure * Pivotal Cloud Foundry * Prometheus Monitoring * SAP Monitoring * Docs * Help Center Quick and easy set up Get more value from your data with hundreds of quickstarts that integrate with just about anything. Be up and running in minutes. Get started Get started Build * Developer Hub Everything you need to build on New Relic * NerdLog Product updates and live demos * Open Source Projects Open source projects we maintain and support Learn * Blog Industry updates, how-tos and best practices * New Relic University Training courses and certifications * Resources eBooks, datasheets, & white papers * Articles Explore observability and technology topics * Events & Webinars Join us for an upcoming event Community and Support * Community Forum Ask a question. Share an answer. * Technical Support Expert support for our global clients * Expert Services Let experts guide you with customized tech support Search toggle Log in Log in Sign up Sign up Log in Log in Sign up Sign up newrelic blog homepage * How to Relic * Best Practices * Culture * News Blog navigation menu, 4 items Toggle blog search * How to Relic * Best Practices * Culture * News newrelic blog homepage * How to Relic * Best Practices * Culture * News Toggle blog search Log in Log in Sign up Sign up Blog navigation menu, 4 items * How to Relic * Best Practices * Culture * News Search the blog Submit Log in Log in Sign up Sign up Observability IMPROVE APP PERFORMANCE WITH GOLDEN SIGNALS IN YOUR IDE WITH NEW RELIC CODESTREAM, OBSERVABILITY DATA MEETS YOU WHERE YOU ARE—IN THE IDE Published Apr 12, 2022 • Updated Sep 13, 2022 • 5 min read By David Hersh By Uma Annamalai When you monitor the four golden signals—response time, throughput, error rate, and saturation—you can quickly see an overview of the health and performance of your application. These metrics were traditionally almost exclusively the domain of Ops, DevOps, or SREs. But what about the application developers—those who are ultimately responsible for the code that builds these services? To understand how your own code is performing and to troubleshoot customer issues, you need rich context and observability solutions that showcase these golden metrics at the service and system levels, and all the way down to methods in the code. Code-level metrics and service-level telemetry give you the ability to see which services and lines of code are impacting your application. CODE-LEVEL METRICS The New Relic CodeStream IDE extension brings software performance into the daily practice of developers by providing a pervasive, always-on view of code-level metrics. The three golden metrics that are applicable to application services are displayed as a line of text, called a CodeLens, above each method in your code, automatically instrumented by the New Relic APM agent. In this example, you can see the golden signals of response time, throughput, and error rate: Select a CodeLens for a set of charts visualizing each of the metrics. You can also get more insight by clicking through to the APM service summary page in New Relic. More importantly, you can also change the service for the code-level metrics that you see. This allows you to see how your code is performing in other environments, such as staging or QA, so you can take a more proactive approach to performance problems. You can get ahead of these issues before they hit production. SERVICE-LEVEL TELEMETRY While seeing how the actual code is performing is arguably the most important thing for your day-to-day work, it’s also important to see the bigger picture. You might think about these questions: * The code I’m responsible for builds a particular service. How is that service performing? * How are the services that are related to mine performing? Unless there’s an incident developers rarely see this view of the world. The observability section of CodeStream changes this old approach. The golden metrics for the services associated with the repo you have open in your IDE are available at a glance. And with just one click, you can see the metrics for any service that calls, or is called by, your service. In this screenshot, you can see an example of the response time, the throughput, and the error rate for a service, the services that it calls, and the services it is called by: With service-level telemetry, you get the big picture, right in your IDE. CODESTREAM VIDEO WALKTHROUGH For a quick walkthrough of these features, check out this Nerd Bytes video: GETTING STARTED WITH CODE-LEVEL METRICS IS EASY Follow these instructions to get started. Note that code-level metrics are currently supported for Python, Ruby, .NET, and Go. Java support is in private preview, so reach out to us at support@codestream.com if you’d like to participate. PHP and Node.js support are on the way! 1. UPDATE YOUR AGENT Update your APM agent to the version that supports code-level metrics. * .NET - Version 9.9.0 or later * Python - Version 7.10.0.175 or later * Ruby - Version 8.10.0 or later * Go - Version 3.18.0 or later For .NET and Go you’ll also need to enable code-level metrics in the agent configuration. 2. INSTALL THE CODESTREAM EXTENSION Install the CodeStream extension as you would any other extension for VS Code or a JetBrains IDE by going to the marketplace in your IDE. Make sure you’re running the latest version (v14.0 or later). * CodeStream for VS Code * CodeStream for JetBrains * CodeStream for Visual Studio 3. SIGN UP FOR CODESTREAM After installing the extension, you’ll be prompted to create a CodeStream account, even if you’re already a New Relic user. CodeStream offers several signup options, but we suggest that you select Sign up with New Relic. In one step, you’ll be signed up for CodeStream and connected to your New Relic account. You’ll be prompted to enter your New Relic User API Key. 4. ASSOCIATE A REPOSITORY WITH YOUR APM SERVICE Open a repository in your IDE that corresponds to an APM service where you’d like to see code-level metrics. If the repository isn’t already associated with the APM service, you’ll get a message in the Observability section of CodeStream prompting you to make this association. If you have multiple services that correspond to this repo (such as different services for different environments), you can make additional repo<>service associations on the Summary page for your APM service in New Relic. Go to the Repositories section in the bottom right. 5. OPEN A FILE AND LOOK FOR EACH CODELENS Open a source file from your repository and look for the golden metrics in a CodeLens above each instrumented method. NEXT STEPS To learn more about what you can do with CodeStream, see the CodeStream user guide. If you're not using New Relic yet, sign up for a free account. It includes 100 GB/month of free data ingest, one free full-access user, and unlimited free basic users. RELATED TOPICS Observability Integrations DevOps Consolidating Tools -------------------------------------------------------------------------------- By David Hersh David Hersh, Senior Director, Product Management at New Relic CodeStream, is a serial entrepreneur and product manager. He was a co-founder, and head of product development at CodeStream. Dave has a B.S. in Information Systems and an MBA from Carnegie Mellon University. A recognized expert in the design of collaboration and social networking services, Dave also was a co-founder & Chief Product Officer of Glip, a team collaboration platform acquired by RingCentral in 2015, and Multiply.com, a social commerce platform acquired by Naspers in 2010. He was also a partner at Commissioner.com, one of the first online fantasy sports platforms, which was acquired by CBS in 1999. By Uma Annamalai Uma Annamalai is a software engineer at New Relic. The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites. Get started with access to New Relic, free forever. Sign up today Sign up today Share this article * Share on Twitter * Share on Reddit * Share on Facebook * Share on LinkedIn In this article * Code-level metrics * Service-level telemetry * CodeStream video walkthrough * Getting started with code-level metrics is easy * Next steps RELATED Observability Extend observability and code discussion to your IDE with New Relic CodeStream 4 min read Oct 21, 2021 Read Article Open Source 9 ways to improve your workflow with CodeStream 4 min read Oct 28, 2021 Read Article Observability Discover and debug errors with CodeStream 4 min read Apr 7, 2022 Read Article SUBSCRIBE TO OUR BLOG Find out about the latest articles and nerd out on the regular. * Email: * Country: Select a countryUnited StatesAfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua and BarbudaArgentinaArmeniaArubaAscension IslandAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia-HerzegovinaBotswanaBouvet IslandBrazilBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCayman IslandsCentral African RepublicChadChileChinaChristmas IslandCocos (Keeling) IslandsColombiaComorosCongo, Democratic RepublicCook IslandsCosta RicaCroatiaCubaCuraçaoCyprusCzech RepublicRepublic of the CongoDenmarkDjiboutiDominicaDominican RepublicTimor-LesteEast Timor Timor-LesteEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland Islands (Malvinas)Faroe IslandsFijiFinlandFranceFrench GuianaFrench MetropolitanFrench PolynesiaFrench Southern TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuam (USA)GuatemalaGuernseyGuineaGuinea BissauGuyanaHaitiHeard and Mc Donald IslandsHoly See (Vatican City State)HondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsle of ManIsraelItalyIvory CoastJamaicaJapanJerseyJordanKazakhstanKenyaKiribatiNorth KoreaKorea, SouthKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNetherlands AntillesNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfolk IslandNorthern Mariana IslandsNorwayOmanPakistanPalauPanamaPapua New GuineaParaguayPeruPhilippinesPitcairnPolandPortugalPuerto RicoQatarRéunionRomaniaRussian FederationRwandaSaint HelenaSaint Kitts and NevisSaint LuciaSaint Vincent and GrenadinesSamoaSan MarinoSao Tome and PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth SudanSouth Georgia and South Sandwich IslandsSpainSri LankaSaint Pierre and MiquelonSudanSurinameSvalbard and Jan MayenSwazilandSwedenSwitzerlandSyriaTaiwan (Republic of China)TajikistanTanzaniaThailandTogoTokelauTongaTrinidad and TobagoTunisiaTurkeyTurkmenistanTurks and Caicos IslandsTuvaluU.S. Minor Outlying IslandsUgandaUkraineUnited Arab EmiratesUnited KingdomUnited StatesUruguayUzbekistanVanuatuVenezuelaVietnamVirgin IslandsWallis and FutunaWestern SaharaYemenZambiaZimbabwe Subscribe THANK YOU FOR SUBSCRIBING Thank you for subscribing to the New Relic blog. You will receive a weekly blog digest. You can update your subscription preferences any time on our subscription page. Company * About Us * Leadership * Careers * Social Impact * Newsroom * Customers * Partner Program * Investor Relations * Suppliers Portal * Security * ESG * Contact Us Follow Us * * * * * * * Download the New Relic App * Get it on Google Play * * Terms of Service * DMCA Policy * Privacy Policy * Cookie Policy * UK Slavery Act of 2015 * 日本語 * Français * Deutsch * 한국어 ©2008-22 New Relic, Inc. All rights reserved