Azure Application Insights JavaScript SDK: reliability and performance improvements

Recently, we have improved the robustness of web page monitoring in Application Insights, and introduced the ability not to use cookies. Transmission is now more reliable in the face of throttling and network issues, and when a page is about to unload.

With Azure Application Insights you can monitor performance and usage of your apps. With a little snippet of JavaScript you can get timings of page loads and AJAX calls, counts and details of browser exceptions and AJAX failures, as well as users and session counts. To learn more how to get started you can visit our documentation.

New JavaScript SDK features

In addition to internal improvements we have fixed some bugs, cleaned up the SDK, and added a couple more features:

Add snippet.js to NPM package:

Snippet.js is a file used for those who want to use application insights from a separate file instead of using inline JavaScript using a Gulp pipeline. By RehanSaeed. Thanks Muhammed Rehan!

Option to disable cookies

This was an ask from some of our users. Now you can disable cookies, but some features will be lost. Without cookies every page view will count as a new user and session. For more configuration options please see our Application Insights SDK JavaScript API

Enable dependency correlation headers

These are now turned off by default, but you can enable them manually. To correlate dependencies with server request set disableCorrelationHeaders in your config file to false. If you opt in to this feature you will then be able to see the server request that correlate with your client side AJAX calls.

JavaScript SDK Improvements

The below improvements have been made that elevate our JavaScript SDK without any additional work when onboarding

Security

The JS SDK has fully switched to https. We now use https to send all telemetry and to download the library. Also, for all secure sites the SDK will create cookies with a secure flag – more on set-cookie documentation. 

Transmission

One of the biggest goals for Application Insights JavaScript SDK is to provide as much functionality as possible, while not degrading the instrumented page in any way. This includes performance and user experience. Because transmission reliability is a crucial part of the SDK, we’ve recently made a few improvements in this area.

Telemetry is now sent more reliably when:

1. The Application Insights portal is imposing throttling, or is temporarily unable to accept data.

Retry and error handling features are helping to improve transmission reliability. In the case of network issues, the SDK will retry sending the telemetry data with an exponential backoff.

2. The user navigates to a new page within the same site, shortly after your code sends a telemetry event. Previously, events not yet sent were lost when the page was unloaded. Events are now kept in a session buffer that is preserved across pages in the same site.

Beacon API

JavaScript SDK also provides experimental support for a Beacon API. The Beacon API is designed to transmit telemetry when the browser is not busy with time-critical operations. All data is delivered even if the user navigates away or closes a browser tab.

The Beacon API only allows to queue data for transmission, and the actual transmission is handled by the browser outside of our control. Thus, the JavaScript SDK cannot receive a confirmation from the Application Insights backend that all telemetry was received and processed correctly.

If a default JavaScript SDK configuration doesn’t fully work for you and you suspect that not all events are tracked or that transmission is impacting the performance of your page, you can try using the Beacon API.  The feature is currently disabled, but you can enable it by setting ‘isBeaconApiDisabled’ to false – see config. If you decide to send your data using the Beacon API, the SDK will automatically turn off Session Storage Buffer and Retry features.

Performance.now in Session Class

After working with the PowerBI and Edge team we have moved to using performance.now in session calls. This improves the performance of our library’s date/time handling.

Feedback

If you have any questions or experiencing any problems with the JavaScript SDK, feel free to open an issue on GitHub.

Special Thanks

Special thanks to Kamil Szostak for help preparing this post.
Quelle: Azure

How to turn APM metrics into better apps

Digital applications are the lifeblood of business today. They are the primary means of interaction with customers. It’s imperative applications are always available, provide optimal performance and deliver exceptional customer experiences. If not, you can probably expect your customers to say goodbye.
Applications run on top of a complex web of software components. Some provide the platform and connectivity needed to deliver services and others move data between devices. IBM provides a robust set of components, including WebSphere Application Server, MQ, IBM Integration Bus, Datapower and more. Each helps deliver numerous applications.
To ensure your applications perform optimally, you should manage the health and welfare of software components. IBM Application Performance Management (APM) monitors the performance and availability of your critical IBM applications to identify problems before impacting users, visualize performance bottlenecks and more.
Fine-tune your software with APM metrics
Many people think of monitoring as being alerted about a problem and guided to the issue source to fix it. But another motivation for monitoring is to proactively avoid those problems in the first place. Adopting DevOps methodology, you can take information from monitoring to your developers for fine-tuning to improve application performance. You can gather metrics at short intervals, making it more likely that you’ll spot trends or anomalies that indicate bottlenecks.
APM allows you to monitor the key metrics of your IBM software environment for optimal behavior. But it’s also important to measure the CPU, memory and network utilization to ensure bottlenecks aren’t at the platform level.
To illustrate, here are some of the metrics you can use from APM to tune WebSphere Application Server:

Heap utilization and garbage collection statistics to determine if memory leaks are occurring
Database Connection pools to identify if they are too small to handle the load that is placed on them
Thread pools to determine if they are too small to handle the load
Web Services &; identify most used web services and performance problems, including if it is a code or underlying resource problem

Speed resolution with APM metrics
You can also use APM to identify problems and speed up resolution time. It works similarly to fine-tuning, but with more frequent metric gathering and alerting rather than reporting. This is also where IBM APM outshines other solutions, offering quicker troubleshooting and resolution.
Transaction tracking can dramatically improve problem diagnosis by isolating the source. This ensures the issue is routed to the right SME and does not involve others responsible for different areas of the application environment. IBM Operations Analytics – Predictive Insights automatically determines baselines for metrics and will alert you about deviations from that baseline. It can also identify related metrics helpful for quicker identification of problems’ cause.
If you’re using IBM components to build applications, you should consider coupling them with IBM APM’s monitoring designed to help tune those components for optimal performance and quick problem resolution. Result? An optimal customer experience.
Want hands-on experience with IBM APM? Attend IBM InterConnect for countless sessions, labs, and educational opportunities.
The post How to turn APM metrics into better apps appeared first on news.
Quelle: Thoughts on Cloud

What’s new in Azure Active Directory B2C

Over the past few weeks, we have introduced new features in Azure AD B2C, a cloud identity service for app developers. Azure AD B2C handles all your app’s identity management needs, including sign-up, sign-in, profile management and password reset. In this post, you’ll read about these features:

Single-page app (SPA) support
Usage reporting APIs
Friction-free consumer sign-up

Single-page app (SPA) support

A single-page app (SPA) is a web app that loads a single HTML page and dynamically updates the page as the consumer interacts with the app. It is written primarily in JavaScript, typically using a framework like AngularJS or Ember.js. Gmail and Outlook are two popular consumer-facing SPAs.

Since JavaScript code runs in a consumer’s browser, a SPA has different requirements for securing the frontend and calls to backend web APIs, compared to a traditional web app. To support this scenario, Azure AD B2C added the OAuth 2.0 implicit grant flow. Read more about using the OAuth 2.0 implicit grant flow or try out our samples:

A SPA, implemented with an ASP.NET Web API backend
A SPA, implemented with a Node.js Web API backend

Both samples use an open-source JavaScript SDK (hello.js). Note that the OAuth 2.0 implicit grant flow support is still in preview.

Usage reporting APIs

A frequent ask from developers is to get access to rich consumer activity reports on their Azure AD B2C tenants. We’ve now made those available to you, programmatically, via REST-based Azure AD reporting APIs. You can easily pipe the data from these reports into business intelligence and analytics tools, such as Microsoft’s Power BI, for detailed analyses. With the current release, 4 activity reports are available:

tenantUserCount: Total number of consumers in your Azure AD B2C tenant (per day for the last 30 days). You can also get a breakdown by the number of local accounts (password-based accounts) and social accounts (Facebook, Google, etc.).
b2cAuthenticationCount: Total number of successful authentications (sign-up, sign-in, etc.) within a specified period.
b2cAuthenticationCountSummary: Daily count on successful authentications for the last 30 days.
b2cMfaRequestCountSummary: Daily count of multi-factor authentications for the last 30 days.

Get started using the steps outlined in this article.

Friction-free consumer sign-up

By default, Azure AD B2C verifies email addresses provided by consumers during the sign-up process. This is to ensure that valid, and not fake, accounts are in use on your app. However, some developers prefer to skip the upfront email verification step and doing it themselves later. This friction-free sign-up experience makes sense for certain app types. We’ve added a way for you to do this on your “Sign-up policies” or “Sign-up or sign-in policies”. Learn more about disabling email verification during consumer sign-up.

Feedback

Keep your great feedback coming on UserVoice or Twitter (@azuread, @swaroop_kmurthy). If you have questions, get help on Stack Overflow (use the ‘azure-active-directory’ tag).
Quelle: Azure

Adding #AzureSearch to #DocumentDB collections with a click of a button

Our customers love how easy it is to use Azure Search and DocumentDB together to meet business goals. Tight integration through Indexers simplifies the task of indexing and searching in a variety of verticals from ecommerce to business applications. With the ability to load data with zero code, it’s even easier. We’re always looking for ways to boost developer productivity, so today we’re happy to announce the ability to add Search to a collection directly from DocumentDB with a click of a button.

Seamlessly select or create a Search service, and your DocumentDB configuration will be populated automatically. You’ll have all the search power you’ve come to expect. Schema inference provides an excellent starting point to easily add features like faceted navigation, intelligent language processing, and suggestions.

All of this is built on the tried and true indexer infrastructure, so expect a mature solution that’s in use by lots of customers and that will get the task done smoothly and reliably. Indexers and Search + DocumentDB enable more complex scenarios as well. DocumentDB is a global NoSQL database, this enables you to create Azure Search service instances in as many regions as you want. Create an indexer in each Search service, all pointing at the same DocumentDB account, for a simple and rock-solid solution for low-latency, geo-distributed search application backend.

We can’t wait to see what you build with DocumentDB and Azure Search! As always we’d love to hear from you on Twitter, User Voice, or the comments below. Happy coding!
Quelle: Azure

AWS Direct Connect announces support for Link Aggregation

We are excited to announce support for 1G and 10G Link Aggregation Groups (LAG). Customers in US-East-1, US-East-2, regions can start using LAG to link existing connections on the same AWS device, or request new connections. Users who wish to purchase multiple ports, but treat them like a single managed connection can now useour LAG feature to do just this. In addition to ordering and managing bundles, you can now see when your ports fall on the same router so you can manage your network availability.
Quelle: aws.amazon.com