Azure Monitoring
Azure Monitoring
Modern visibility into Azure services and on-premises infrastructure in a single platform.
Keep Azure migrations on track and modernize workloads by observing resource health, performance, and availability across hybrid environments.

Fewer tickets
Reduced ticket volume
Provide better customer experiences by correlating related issues.

Less tools
Fewer monitoring tools
Clear insights for ops teams with one monitoring platform.

Faster MTTR
Rapid troubleshooting
Resolve issues faster with logs, metrics, and traces in one platform.

Time savings
Automated insights
Free up time by unlocking log insights for users of all levels to reduce escalations or war rooms.
.four-column-content {
background-color: var(–bg-color);
padding-block: 60px;
}
.four-column-content__header {
text-align: left;
margin-bottom: 66px;
}
.four-column-content__header__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.four-column-content__header__title {
color: var(–title-color);
font-size: 64px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 23px;
}
.four-column-content__header__content {
margin: 0;
}
.four-column-content__header__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.four-column-content__columns__wrap + .four-column-content__columns__wrap {
margin-top: 0;
}
.four-column-content__col {
background: var(–col-bg-color);
border-radius: 14px;
display: flex;
flex-direction: column;
padding: 39px 34px 35px;
height: 100%;
}
.four-column-content__col__icon__wrap {
width: auto;
max-height: 120px;
margin-bottom: 0px;
}
.four-column-content__col__icon__wrap > img {
width: auto;
height: 100%;
}
.four-column-content__col__eyebrow {
color: var(–col-eyebrow-color);
font-size: 14px;
font-weight: 400;
line-height: 1.5;
letter-spacing: 0.1em;
margin-bottom: 18px;
text-transform: uppercase;
}
.four-column-content__col__title {
color: var(–col-title-color);
font-size: 28px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 18px;
}
.four-column-content__col__content a {
color: var(–col-link-color);
}
.four-column-content__col__content a:hover {
color: var(–col-link-hover-color);
}
.four-column-content__col__content > * {
color: var(–col-text-color);
font-size: 16px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.four-column-content__col__ctas {
margin-top: 18px;
}
.four-column-content__col__ctas .button {
color: var(–col-link-color, var(–link-color));
border-color: var(–col-link-color, var(–link-color));
font-family: “Sharp Grotesk Alt”, sans-serif;
font-size: 14px;
letter-spacing: 0.1em;
padding-bottom: 10px;
}
.four-column-content__col__ctas .button:hover {
color: var(–col-link-hover-color, var(–link-hover-color));
border-color: var(–col-link-hover-color, var(–link-hover-color));
}
.four-column-content__header__content > *:last-child {
margin-bottom: 0;
}
.four-column-content__col__content > *:last-child {
margin-bottom: 0;
}
:not(.four-column-content__plain) > .four-column-content__col__eyebrow {
margin-top: 30px;
}
@media (min-width: 1201px) and (max-width: 1399px) {
.four-column-content__col__title {
font-size: 24px;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.four-column-content__col__title {
font-size: 20px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic four-column-content-block_e16c9461cccff04966ffa89ab20d9e7d
* magic word so the block knows where to use the actual id. */
#four-column-content-block_e16c9461cccff04966ffa89ab20d9e7d {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #040f4b;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–button-text-color: #040f4b;
–button-bg-color: #fff;
–button-border-color: #040f4b;
–button-text-hover-color: #1a31ff;
–button-bg-hover-color: #fff;
–button-border-hover-color: #1a31ff;
}
/* On this color palette for the cloud-dark column */
.four-column-content__cloud-dark {
–col-bg-color:
linear-gradient(202.73deg, #040f4b 69.9%, #7aecf3 101.93%),
#040f4b;
–col-eyebrow-color: #fff;
–col-title-color: #fff;
–col-text-color: #fff;
–col-link-color: #e8ff26;
–col-link-hover-color: #e8ff26;
}
/* On this color palette for the cloud-dark column */
.four-column-content__cloud-dark {
–col-bg-color:
linear-gradient(202.73deg, #040f4b 69.9%, #7aecf3 101.93%),
#040f4b;
–col-eyebrow-color: #fff;
–col-title-color: #fff;
–col-text-color: #fff;
–col-link-color: #e8ff26;
–col-link-hover-color: #e8ff26;
}
/* On this color palette for the cloud-dark column */
.four-column-content__cloud-dark {
–col-bg-color:
linear-gradient(202.73deg, #040f4b 69.9%, #7aecf3 101.93%),
#040f4b;
–col-eyebrow-color: #fff;
–col-title-color: #fff;
–col-text-color: #fff;
–col-link-color: #e8ff26;
–col-link-hover-color: #e8ff26;
}
/* On this color palette for the cloud-dark column */
.four-column-content__cloud-dark {
–col-bg-color:
linear-gradient(202.73deg, #040f4b 69.9%, #7aecf3 101.93%),
#040f4b;
–col-eyebrow-color: #fff;
–col-title-color: #fff;
–col-text-color: #fff;
–col-link-color: #e8ff26;
–col-link-hover-color: #e8ff26;
}

Hybrid observability for Azure workloads
- Hybrid monitoring coverage over critical Azure services alongside on-premises, multi-cloud, and Kubernetes environments in a single unified platform
- Connect into Azure Monitor metrics and discover resources with agentless collection and skip manual configuration
- Visibility into Azure availability, OS, and application level metrics for insights into underlying cloud infrastructure health to predict service availability
- See the performance and availability of your business services with logical relationship mapping between resources
.content-media-50-50 {
background-color: var(–bg-color);
padding-block: 60px;
}
.content-media-50-50 a:not(.lm-refresh-button) {
color: var(–link-color);
}
.content-media-50-50__row:not(:last-child) {
padding-bottom: 120px;
}
.content-media-50-50__content {
text-align: left;
margin-bottom: 38px;
}
.content-media-50-50__content__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.content-media-50-50__content__title {
color: var(–title-color);
font-size: 32px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 0;
}
.content-media-50-50__content__content {
margin-top: 40px;
}
.content-media-50-50__content__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.content-media-50-50__content__content ul li,
.content-media-50-50__content__content ol li {
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.content-media-50-50__content__content > *:last-child {
margin-bottom: 0;
}
.content-media-50-50__ctas {
display: flex;
flex-direction: row;
gap: 20px;
margin-top: 30px;
}
.content-media-50-50__ctas .button {
border-radius: 10px;
font-size: 14px;
line-height: 18px;
letter-spacing: 0.1em;
padding: 16px 32px;
transition:
color 0.25s ease-out,
background-color 0.25s ease-out,
border-color 0.25s ease-out;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary {
border-color: var(–button-primary-border-color) !important;
background-color: var(–button-primary-bg-color) !important;
color: var(–button-primary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary {
border-color: var(–button-secondary-border-color) !important;
background-color: var(–button-secondary-bg-color) !important;
color: var(–button-secondary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary:hover {
border-color: var(–button-primary-hover-border-color) !important;
background-color: var(–button-primary-hover-bg-color) !important;
color: var(–button-primary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary:hover {
border-color: var(–button-secondary-hover-border-color) !important;
background-color: var(–button-secondary-hover-bg-color) !important;
color: var(–button-secondary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
@media (min-width: 992px) {
.content-media-50-50__content__title {
font-size: 46px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic content-media-50-50-block_3f49aa1ca82914374b1631ffe06de9a1
* magic word so the block knows where to use the actual id. */
#content-media-50-50-block_3f49aa1ca82914374b1631ffe06de9a1 {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #414042;
–icon-color: #1a31ff;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–border-color: #d9d9d9;
–button-primary-border-color: #1a31ff;
–button-primary-bg-color: #1a31ff;
–button-primary-text-color: #fff;
–button-primary-hover-border-color: #040f4b;
–button-primary-hover-bg-color: #040f4b;
–button-primary-hover-text-color: #fff;
–button-secondary-border-color: #1a31ff;
–button-secondary-bg-color: transparent;
–button-secondary-text-color: #1a31ff;
–button-secondary-hover-border-color: #040f4b;
–button-secondary-hover-bg-color: transparent;
–button-secondary-hover-text-color: #040f4b;
}
/* These are the styles specific in case the user adds an image to the block */
.content-media-50-50__image__wrap {
padding-bottom: 25px;
}
.content-media-50-50__image__wrap > img {
max-width: 100%;
height: auto;
}
Confidently migrate to Azure and observe performance
- Automatically discover and monitor critical Azure services like Virtual Machines, Storage Account, Azure Kubernetes Service (AKS), Cognitive Services and more in real-time
- Make sure migrated and refactored resources work correctly in Azure to minimize service disruptions
- Pre-built, out-of-the-box dashboards help you monitor AWS resources quickly and easily
- LogicMonitor helps plan for migrations with 1-year forecasts into future workload metrics to predict migrated resource requirements and safe fail-over limits

.content-media-50-50 {
background-color: var(–bg-color);
padding-block: 60px;
}
.content-media-50-50 a:not(.lm-refresh-button) {
color: var(–link-color);
}
.content-media-50-50__row:not(:last-child) {
padding-bottom: 120px;
}
.content-media-50-50__content {
text-align: left;
margin-bottom: 38px;
}
.content-media-50-50__content__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.content-media-50-50__content__title {
color: var(–title-color);
font-size: 32px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 0;
}
.content-media-50-50__content__content {
margin-top: 40px;
}
.content-media-50-50__content__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.content-media-50-50__content__content ul li,
.content-media-50-50__content__content ol li {
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.content-media-50-50__content__content > *:last-child {
margin-bottom: 0;
}
.content-media-50-50__ctas {
display: flex;
flex-direction: row;
gap: 20px;
margin-top: 30px;
}
.content-media-50-50__ctas .button {
border-radius: 10px;
font-size: 14px;
line-height: 18px;
letter-spacing: 0.1em;
padding: 16px 32px;
transition:
color 0.25s ease-out,
background-color 0.25s ease-out,
border-color 0.25s ease-out;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary {
border-color: var(–button-primary-border-color) !important;
background-color: var(–button-primary-bg-color) !important;
color: var(–button-primary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary {
border-color: var(–button-secondary-border-color) !important;
background-color: var(–button-secondary-bg-color) !important;
color: var(–button-secondary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary:hover {
border-color: var(–button-primary-hover-border-color) !important;
background-color: var(–button-primary-hover-bg-color) !important;
color: var(–button-primary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary:hover {
border-color: var(–button-secondary-hover-border-color) !important;
background-color: var(–button-secondary-hover-bg-color) !important;
color: var(–button-secondary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
@media (min-width: 992px) {
.content-media-50-50__content__title {
font-size: 46px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic content-media-50-50-block_a0e57b2be971bf60193e879030040bd9
* magic word so the block knows where to use the actual id. */
#content-media-50-50-block_a0e57b2be971bf60193e879030040bd9 {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #414042;
–icon-color: #1a31ff;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–border-color: #d9d9d9;
–button-primary-border-color: #1a31ff;
–button-primary-bg-color: #1a31ff;
–button-primary-text-color: #fff;
–button-primary-hover-border-color: #040f4b;
–button-primary-hover-bg-color: #040f4b;
–button-primary-hover-text-color: #fff;
–button-secondary-border-color: #1a31ff;
–button-secondary-bg-color: transparent;
–button-secondary-text-color: #1a31ff;
–button-secondary-hover-border-color: #040f4b;
–button-secondary-hover-bg-color: transparent;
–button-secondary-hover-text-color: #040f4b;
}
/* These are the styles specific in case the user adds an image to the block */
.content-media-50-50__image__wrap {
padding-bottom: 25px;
}
.content-media-50-50__image__wrap > img {
max-width: 100%;
height: auto;
}

Innovate with Layered AI
- Act on alerts faster with dynamic thresholds and anomaly detection to easily identify issues and prioritize troubleshooting
- Confidently accelerate your AI projects with monitoring of your Azure OpenAI and Cognitive Services
- Quickly respond to incidents with Edwin AI, and use incident summaries, root cause analysis, and resolution guidance to empowers IT teams
- Edwin AI accelerates cross-domain incident resolution with support workflows across ITOps, SecOps, DevOps, and more
.content-media-50-50 {
background-color: var(–bg-color);
padding-block: 60px;
}
.content-media-50-50 a:not(.lm-refresh-button) {
color: var(–link-color);
}
.content-media-50-50__row:not(:last-child) {
padding-bottom: 120px;
}
.content-media-50-50__content {
text-align: left;
margin-bottom: 38px;
}
.content-media-50-50__content__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.content-media-50-50__content__title {
color: var(–title-color);
font-size: 32px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 0;
}
.content-media-50-50__content__content {
margin-top: 40px;
}
.content-media-50-50__content__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.content-media-50-50__content__content ul li,
.content-media-50-50__content__content ol li {
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.content-media-50-50__content__content > *:last-child {
margin-bottom: 0;
}
.content-media-50-50__ctas {
display: flex;
flex-direction: row;
gap: 20px;
margin-top: 30px;
}
.content-media-50-50__ctas .button {
border-radius: 10px;
font-size: 14px;
line-height: 18px;
letter-spacing: 0.1em;
padding: 16px 32px;
transition:
color 0.25s ease-out,
background-color 0.25s ease-out,
border-color 0.25s ease-out;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary {
border-color: var(–button-primary-border-color) !important;
background-color: var(–button-primary-bg-color) !important;
color: var(–button-primary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary {
border-color: var(–button-secondary-border-color) !important;
background-color: var(–button-secondary-bg-color) !important;
color: var(–button-secondary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary:hover {
border-color: var(–button-primary-hover-border-color) !important;
background-color: var(–button-primary-hover-bg-color) !important;
color: var(–button-primary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary:hover {
border-color: var(–button-secondary-hover-border-color) !important;
background-color: var(–button-secondary-hover-bg-color) !important;
color: var(–button-secondary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
@media (min-width: 992px) {
.content-media-50-50__content__title {
font-size: 46px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic content-media-50-50-block_0486ff2b0c96361f730b4c099a8063cf
* magic word so the block knows where to use the actual id. */
#content-media-50-50-block_0486ff2b0c96361f730b4c099a8063cf {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #414042;
–icon-color: #1a31ff;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–border-color: #d9d9d9;
–button-primary-border-color: #1a31ff;
–button-primary-bg-color: #1a31ff;
–button-primary-text-color: #fff;
–button-primary-hover-border-color: #040f4b;
–button-primary-hover-bg-color: #040f4b;
–button-primary-hover-text-color: #fff;
–button-secondary-border-color: #1a31ff;
–button-secondary-bg-color: transparent;
–button-secondary-text-color: #1a31ff;
–button-secondary-hover-border-color: #040f4b;
–button-secondary-hover-bg-color: transparent;
–button-secondary-hover-text-color: #040f4b;
}
/* These are the styles specific in case the user adds an image to the block */
.content-media-50-50__image__wrap {
padding-bottom: 25px;
}
.content-media-50-50__image__wrap > img {
max-width: 100%;
height: auto;
}
Manage Azure costs and maintain performance
- Deliver highly available and efficient services and applications while managing Azure costs
- Easily interpret Azure cost trends to know where, when, and why cloud billing changes occurred
- Get the most out of Azure investments with AI-powered storage and compute recommendations to reduce costs and balance utilization (beta)
- Explore cost change recommendations directly in your Azure portal to immediately take action with supporting observability data (beta)

.content-media-50-50 {
background-color: var(–bg-color);
padding-block: 60px;
}
.content-media-50-50 a:not(.lm-refresh-button) {
color: var(–link-color);
}
.content-media-50-50__row:not(:last-child) {
padding-bottom: 120px;
}
.content-media-50-50__content {
text-align: left;
margin-bottom: 38px;
}
.content-media-50-50__content__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.content-media-50-50__content__title {
color: var(–title-color);
font-size: 32px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 0;
}
.content-media-50-50__content__content {
margin-top: 40px;
}
.content-media-50-50__content__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.content-media-50-50__content__content ul li,
.content-media-50-50__content__content ol li {
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.content-media-50-50__content__content > *:last-child {
margin-bottom: 0;
}
.content-media-50-50__ctas {
display: flex;
flex-direction: row;
gap: 20px;
margin-top: 30px;
}
.content-media-50-50__ctas .button {
border-radius: 10px;
font-size: 14px;
line-height: 18px;
letter-spacing: 0.1em;
padding: 16px 32px;
transition:
color 0.25s ease-out,
background-color 0.25s ease-out,
border-color 0.25s ease-out;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary {
border-color: var(–button-primary-border-color) !important;
background-color: var(–button-primary-bg-color) !important;
color: var(–button-primary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary {
border-color: var(–button-secondary-border-color) !important;
background-color: var(–button-secondary-bg-color) !important;
color: var(–button-secondary-text-color) !important;
}
.content-media-50-50__ctas .content-media-50-50__cta__primary:hover {
border-color: var(–button-primary-hover-border-color) !important;
background-color: var(–button-primary-hover-bg-color) !important;
color: var(–button-primary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
.content-media-50-50__ctas .content-media-50-50__cta__secondary:hover {
border-color: var(–button-secondary-hover-border-color) !important;
background-color: var(–button-secondary-hover-bg-color) !important;
color: var(–button-secondary-hover-text-color) !important;
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.18);
}
@media (min-width: 992px) {
.content-media-50-50__content__title {
font-size: 46px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic content-media-50-50-block_e8f33cbdf63070b285b3397be1f1edbf
* magic word so the block knows where to use the actual id. */
#content-media-50-50-block_e8f33cbdf63070b285b3397be1f1edbf {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #414042;
–icon-color: #1a31ff;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–border-color: #d9d9d9;
–button-primary-border-color: #1a31ff;
–button-primary-bg-color: #1a31ff;
–button-primary-text-color: #fff;
–button-primary-hover-border-color: #040f4b;
–button-primary-hover-bg-color: #040f4b;
–button-primary-hover-text-color: #fff;
–button-secondary-border-color: #1a31ff;
–button-secondary-bg-color: transparent;
–button-secondary-text-color: #1a31ff;
–button-secondary-hover-border-color: #040f4b;
–button-secondary-hover-bg-color: transparent;
–button-secondary-hover-text-color: #040f4b;
}
/* These are the styles specific in case the user adds an image to the block */
.content-media-50-50__image__wrap {
padding-bottom: 25px;
}
.content-media-50-50__image__wrap > img {
max-width: 100%;
height: auto;
}
.transparent-bg {
background: transparent;
}
.p-tb-65 {
padding-top: 65px;
padding-bottom: 65px;
}
.single-cta-bar #yt-embed-local {
display: none;
}
.single-cta-bar .embed-container iframe,
.single-cta-bar .embed-container object,
.single-cta-bar .embed-container embed {
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
}
.single-cta-bar .embed-container {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
max-width: 100% !important;
}
.single-cta-bar__wrap {
position: relative;
padding: 45px 50px;
}
.single-cta-bar__title {
font-size: 40px;
font-weight: 400;
letter-spacing: -0.04em;
line-height: 1.10;
}
@media (max-width: 768px) {
.single-cta-bar__title {
font-size: 32px;
}
}
.single-cta-bar h1,
.single-cta-bar h2 {
color: #ffffff !important;
}
.single-cta-bar__card .single-cta-bar__content p {
font-size: 16px;
line-height: 160%;
margin-bottom: 30px;
color: #ffffff !important;
}
.single-cta-bar__content {
color: #ffffff;
}
.single-cta-bar__cta {
display: flex;
justify-content: right;
}
@media (max-width: 991px) {
.single-cta-bar__cta {
justify-content: left;
margin-top: 20px;
}
}
.single-cta-bar a.button-solid {
border-radius: 10px;
}
Over 60 Azure integrations for your most critical cloud services

Microsoft Azure Virtual Machines

Microsoft Azure Storage Account

Microsoft Azure Load Balancer

Microsoft Azure Key Vault

Microsoft Azure Firewall

Microsoft Azure Cognitive Services

Microsoft Azure Kubernetes Service (AKS)

Microsoft Azure SQL Database
.four-column-content {
background-color: var(–bg-color);
padding-block: 60px;
}
.four-column-content__header {
text-align: left;
margin-bottom: 66px;
}
.four-column-content__header__eyebrow {
color: var(–eyebrow-color);
font-size: 18px;
font-weight: 400;
line-height: 1.07;
letter-spacing: 0.1em;
margin-bottom: 23px;
text-transform: uppercase;
}
.four-column-content__header__title {
color: var(–title-color);
font-size: 64px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 23px;
}
.four-column-content__header__content {
margin: 0;
}
.four-column-content__header__content > * {
color: var(–text-color);
font-size: 18px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
}
.four-column-content__columns__wrap + .four-column-content__columns__wrap {
margin-top: 0;
}
.four-column-content__col {
background: var(–col-bg-color);
border-radius: 14px;
display: flex;
flex-direction: column;
padding: 39px 34px 35px;
height: 100%;
}
.four-column-content__col__icon__wrap {
width: auto;
max-height: 120px;
margin-bottom: 0px;
}
.four-column-content__col__icon__wrap > img {
width: auto;
height: 100%;
}
.four-column-content__col__eyebrow {
color: var(–col-eyebrow-color);
font-size: 14px;
font-weight: 400;
line-height: 1.5;
letter-spacing: 0.1em;
margin-bottom: 18px;
text-transform: uppercase;
}
.four-column-content__col__title {
color: var(–col-title-color);
font-size: 28px;
font-weight: 500;
line-height: 1.1;
letter-spacing: -0.02em;
margin-bottom: 18px;
}
.four-column-content__col__content a {
color: var(–col-link-color);
}
.four-column-content__col__content a:hover {
color: var(–col-link-hover-color);
}
.four-column-content__col__content > * {
color: var(–col-text-color);
font-size: 16px;
font-weight: 400;
line-height: 1.3;
letter-spacing: -0.01em;
margin-block: auto 18px;
}
.four-column-content__col__ctas {
margin-top: 18px;
}
.four-column-content__col__ctas .button {
color: var(–col-link-color, var(–link-color));
border-color: var(–col-link-color, var(–link-color));
font-family: “Sharp Grotesk Alt”, sans-serif;
font-size: 14px;
letter-spacing: 0.1em;
padding-bottom: 10px;
}
.four-column-content__col__ctas .button:hover {
color: var(–col-link-hover-color, var(–link-hover-color));
border-color: var(–col-link-hover-color, var(–link-hover-color));
}
.four-column-content__header__content > *:last-child {
margin-bottom: 0;
}
.four-column-content__col__content > *:last-child {
margin-bottom: 0;
}
:not(.four-column-content__plain) > .four-column-content__col__eyebrow {
margin-top: 30px;
}
@media (min-width: 1201px) and (max-width: 1399px) {
.four-column-content__col__title {
font-size: 24px;
}
}
@media (min-width: 992px) and (max-width: 1200px) {
.four-column-content__col__title {
font-size: 20px;
}
}
/* On this color palette I just assign the variable values to the main block,
* that way it will cascade naturally. Notice that I use the generic four-column-content-block_1f899a397d20bd844b510ca1c5f2fcaf
* magic word so the block knows where to use the actual id. */
#four-column-content-block_1f899a397d20bd844b510ca1c5f2fcaf {
–contrast: #f5f5f1;
–bg-color: #fff;
–eyebrow-color: #8187a5;
–title-color: #040f4b;
–text-color: #040f4b;
–link-color: #1a31ff;
–link-hover-color: #1a31ff;
–button-text-color: #040f4b;
–button-bg-color: #fff;
–button-border-color: #040f4b;
–button-text-hover-color: #1a31ff;
–button-bg-hover-color: #fff;
–button-border-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
/* On this color palette for the plain column */
.four-column-content__plain {
–col-bg-color: transparent;
–col-eyebrow-color: var(–eyebrow-color);
–col-title-color: var(–title-color);
–col-text-color: var(–text-color);
–col-link-color: #1a31ff;
–col-link-hover-color: #1a31ff;
}
.lm-full-width-cta__title,
.lm-full-width-cta__title span {
font-family: ‘Sharp Grotesk’, sans-serif !important;
font-size: 48px;
font-weight: 400;
letter-spacing: -0.04em;
line-height: 1.2;
text-align: center;
}
.lm-full-width-cta__ctas {
align-items: center;
display: flex;
flex-direction: column;
gap: 15px;
justify-content: center;
margin-top: 30px;
}
@media only screen and (min-width: 992px) {
.lm-full-width-cta__ctas {
flex-direction: row;
gap: 30px;
}
}
#four-column-content-block_c40410898368fd16ffe61d9fdff7df8d {
padding-bottom: 0px !important;
}
.transparent-bg {
background: transparent;
}
.p-tb-65 {
padding-top: 65px;
padding-bottom: 65px;
}
.single-cta-bar #yt-embed-local {
display: none;
}
.single-cta-bar .embed-container iframe,
.single-cta-bar .embed-container object,
.single-cta-bar .embed-container embed {
position: absolute;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
}
.single-cta-bar .embed-container {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
max-width: 100% !important;
}
.single-cta-bar__wrap {
position: relative;
padding: 45px 50px;
}
.single-cta-bar__title {
font-size: 40px;
font-weight: 400;
letter-spacing: -0.04em;
line-height: 1.10;
}
@media (max-width: 768px) {
.single-cta-bar__title {
font-size: 32px;
}
}
.single-cta-bar h1,
.single-cta-bar h2 {
color: #ffffff !important;
}
.single-cta-bar__card .single-cta-bar__content p {
font-size: 16px;
line-height: 160%;
margin-bottom: 30px;
color: #ffffff !important;
}
.single-cta-bar__content {
color: #ffffff;
}
.single-cta-bar__cta {
display: flex;
justify-content: right;
}
@media (max-width: 991px) {
.single-cta-bar__cta {
justify-content: left;
margin-top: 20px;
}
}
.single-cta-bar a.button-solid {
border-radius: 10px;
}
.kln-featured-post-slider__wrap {
background-color: #F5F5F1;
border-radius: 22px;
align-items: center;
}
.block-padding {
padding-top: 65px;
padding-bottom: 130px;
}
/* Basic Embla Slider Styles */
.kln-featured-post-slider .embla {
overflow: hidden;
max-width: 100%;
}
.kln-featured-post-slider .embla__viewport {
overflow: hidden;
width: 100%;
}
.kln-featured-post-slider .embla__container {
display: flex;
align-items: stretch;
}
.kln-featured-post-slider .embla__slide {
position: relative;
min-width: 100%;
flex: 1 0 100%;
}
.kln-featured-post-slider .embla__prev,
.kln-featured-post-slider .embla__next,
.kln-featured-post-slider .embla__dot {
padding: 0;
opacity: 0.25;
transition: opacity 0.25s ease;
}
.kln-featured-post-slider .embla__prev:hover,
.kln-featured-post-slider .embla__next:hover,
.kln-featured-post-slider .embla__dot:hover,
.kln-featured-post-slider .embla__dot.active {
opacity: 1;
}
.kln-featured-post-slider .embla__nav {
align-items: center;
display: flex;
gap: 34px;
padding-inline: 20px;
width: fit-content;
position: absolute;
left: 50%;
transform: translate(-50%, 50px);
z-index: 2;
}
.kln-featured-post-slider .embla__dots {
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
}
.kln-featured-post-slider .embla__prev,
.kln-featured-post-slider .embla__next,
.kln-featured-post-slider .embla__dot {
padding: 0;
}
.kln-featured-post-slider .embla__dot {
padding: 3px;
}
/* Block Specific Styles */
.kln-featured-post-slider figure {
display: block;
margin: 0;
}
.kln-featured-post-slider img,
.kln-featured-post-slider video {
display: block;
height: auto;
max-width: 100%;
border-radius: 10px;
}
.kln-featured-post-slider__ctas {
color: #040F4B !important;
}
.kln-featured-post-slider__ctas .button__underline {
padding: 0 0 5px !important;
color: #040F4B !important;
font-size: 14px !important;
letter-spacing: .01em;
}
.button__underline {
border-bottom: 1px solid #040F4B !important;
}
.kln-featured-post-slider__slide {
background-size: cover;
background-repeat: no-repeat;
height: 100%;
width: 100%;
}
.kln-featured-post-slider__slide .row {
align-items: center;
justify-content: center;
height: 100%;
}
.kln-featured-post-slider__image__wrap__contain img {
max-height: 350px;
max-width: 350px;
object-fit: contain;
flex: 1 1 auto;
}
.kln-featured-post-slider__image__wrap__,
.kln-featured-post-slider__image__wrap__cover {
width: 100%;
padding: 30px;
}
.kln-featured-post-slider__content__wrap {
padding: 30px;
}
.kln-featured-post-slider__eyebrow_image {
width: 100px;
height: auto;
margin-bottom: 20px;
}
.kln-featured-post-slider__title {
font-size: 24px;
font-weight: 400;
letter-spacing: -0.02em;
line-height: 1.2;
margin-bottom: 10px;
color: #040F4B !important;
}
.kln-featured-post-slider p {
font-size: 18px;
font-weight: 400;
line-height: 1.6;
margin-bottom: 20px;
color: #040F4B !important;
}
.kln-featured-post-slider__content {
font-family: “Sharp Grotesk Alt”, sans-serif;
font-size: 12px;
font-weight: 400;
line-height: 1.6;
margin-bottom: 20px;
}
@media only screen and (min-width: 992px) {
.kln-featured-post-slider__content__wrap {
padding: 10px 30px 10px 30px;
}
.kln-featured-post-slider__image__left .row {
flex-direction: row;
}
.kln-featured-post-slider__image__right .row {
flex-direction: row-reverse;
}
.kln-featured-post-slider__image__wrap__contain {
align-items: center;
display: flex;
justify-content: center;
padding: 40px 60px;
}
.kln-featured-post-slider__wrap {
position: relative;
padding: 30px;
}
/* .kln-featured-post-slider__content__wrap {
padding: 60px;
} */
.kln-featured-post-slider__eyebrow_image {
margin-bottom: 30px;
}
.kln-featured-post-slider__title {
font-size: 40px;
font-weight: 400;
letter-spacing: -0.04em;
line-height: 1.1;
margin-bottom: 16px;
}
.kln-featured-post-slider__content {
font-size: 16px;
font-weight: 400;
line-height: 1.5;
margin-bottom: 40px;
}
.kln-featured-post-slider__image__wrap__,
.kln-featured-post-slider__image__wrap__cover {
flex: 1 0 auto;
height: auto;
width: 50%;
}
}
// URL of the EmblaCarousel script
var emblaScriptURL = “https://unpkg.com/embla-carousel/embla-carousel.umd.js”;
// Load the EmblaCarousel script dynamically and execute the following code once it’s loaded
loadScript(emblaScriptURL, function() {
// Your existing code goes here, after ensuring EmblaCarousel is loaded
const block = document.querySelector(‘#kln-featured-post-slider-block_28c9da2af54023077682e549e2dbf7eb’);
const root = document.querySelector(‘#kln-featured-post-slider-block_28c9da2af54023077682e549e2dbf7eb .embla’);
const viewport = root.querySelector(‘.embla__viewport’);
const prevButton = root.querySelector(‘.embla__prev’);
const nextButton = root.querySelector(‘.embla__next’);
const dots = root.querySelectorAll(‘.embla__dot’);
const options = {
loop: true
};
const embla = EmblaCarousel(viewport, options);
function dotHighlightHandler() {
dots.forEach((dot, index) => {
dot.classList.remove(‘active’);
if (index === embla.selectedScrollSnap()) {
dot.classList.add(‘active’);
}
});
}
prevButton.addEventListener(‘click’, () => {
embla.scrollPrev();
dotHighlightHandler();
}, false);
nextButton.addEventListener(‘click’, () => {
embla.scrollNext();
dotHighlightHandler();
}, false);
dots.forEach((dot, index) => {
dot.addEventListener(‘click’, () => {
embla.scrollTo(index);
dotHighlightHandler();
}, false);
});
// Your code for lazy-loaded images goes here
const figures = block.querySelectorAll(‘.kln-featured-post-slider__slide .kln-featured-post-slider__image__wrap’);
function generatePlaceholder(width, height) {
return `data:image/svg+xml,%3Csvg xmlns=”http://www.w3.org/2000/svg” viewBox=”0 0 ${width} ${height}”%3E%3C/svg%3E`;
}
let itemWidth;
figures.forEach((figure, index) => {
if (index === 0) {
itemWidth = figure.offsetWidth;
}
const media = figure.querySelector(‘*’);
const mediaWidth = media.attributes.width.value;
const mediaHeight = media.attributes.height.value;
const itemHeight = (itemWidth * mediaHeight) / mediaWidth;
media.setAttribute(‘width’, itemWidth);
media.setAttribute(‘height’, itemHeight);
if (media.tagName === ‘IMG’) {
media.setAttribute(‘src’, generatePlaceholder(itemWidth, itemHeight));
}
if (media.tagName === ‘VIDEO’) {
media.setAttribute(‘poster’, generatePlaceholder(itemWidth, itemHeight));
}
});
dotHighlightHandler();
});
})();








