mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
feat: Enhance product showcase and tabs with Kubernetes and Profiles sections, update footer links, and improve Bitcoin logo animation
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Product grid -->
|
||||
<div class="mt-16 grid grid-cols-2 gap-4 sm:grid-cols-5 sm:gap-5 auto-rows-fr">
|
||||
<div class="mt-16 grid grid-cols-2 gap-4 sm:grid-cols-6 sm:gap-5 auto-rows-fr">
|
||||
<!-- Status Page - Emerald -->
|
||||
<a href="/product/status-page" class="blog-cta-card group flex flex-col items-center justify-center text-center rounded-2xl bg-white px-4 py-5 ring-1 ring-inset ring-gray-200 transition-all hover:ring-emerald-300 hover:shadow-[0_0_0_2px_rgb(16_185_129/0.3),0_4px_12px_-4px_rgb(16_185_129/0.15)] h-full">
|
||||
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-emerald-50 ring-1 ring-emerald-200">
|
||||
@@ -138,6 +138,24 @@
|
||||
<div class="mt-3 text-sm font-medium text-gray-900">Dashboards</div>
|
||||
<div class="mt-1 text-xs text-gray-500">Visualize all your data</div>
|
||||
</a>
|
||||
|
||||
<!-- Kubernetes - Cyan -->
|
||||
<a href="/product/kubernetes" class="blog-cta-card group flex flex-col items-center justify-center text-center rounded-2xl bg-white px-4 py-5 ring-1 ring-inset ring-gray-200 transition-all hover:ring-cyan-300 hover:shadow-[0_0_0_2px_rgb(6_182_212/0.3),0_4px_12px_-4px_rgb(6_182_212/0.15)] h-full">
|
||||
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-cyan-50 ring-1 ring-cyan-200">
|
||||
<%- include('../../Partials/icons/kubernetes') %>
|
||||
</div>
|
||||
<div class="mt-3 text-sm font-medium text-gray-900">Kubernetes</div>
|
||||
<div class="mt-1 text-xs text-gray-500">Monitor K8s clusters</div>
|
||||
</a>
|
||||
|
||||
<!-- Profiles - Rose -->
|
||||
<a href="/product/profiles" class="blog-cta-card group flex flex-col items-center justify-center text-center rounded-2xl bg-white px-4 py-5 ring-1 ring-inset ring-gray-200 transition-all hover:ring-rose-300 hover:shadow-[0_0_0_2px_rgb(244_63_94/0.3),0_4px_12px_-4px_rgb(244_63_94/0.15)] h-full">
|
||||
<div class="flex h-11 w-11 items-center justify-center rounded-xl bg-rose-50 ring-1 ring-rose-200">
|
||||
<%- include('../../Partials/icons/profiles') %>
|
||||
</div>
|
||||
<div class="mt-3 text-sm font-medium text-gray-900">Profiles</div>
|
||||
<div class="mt-1 text-xs text-gray-500">CPU & memory profiling</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- AI Agent - Full width featured card -->
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
<div class="h-px flex-1 bg-gradient-to-r from-transparent via-gray-300 to-transparent"></div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-5">
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5">
|
||||
<!-- Logs -->
|
||||
<a href="/product/logs-management" class="feature-card group relative bg-white rounded-2xl p-6 ring-1 ring-gray-200 hover:ring-amber-300 hover:shadow-lg hover:shadow-amber-100/50">
|
||||
<div class="feature-icon-wrapper flex h-12 w-12 items-center justify-center rounded-xl bg-amber-50 ring-1 ring-amber-200 mb-4">
|
||||
@@ -228,6 +228,55 @@
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!-- Kubernetes -->
|
||||
<a href="/product/kubernetes" class="feature-card group relative bg-white rounded-2xl p-6 ring-1 ring-gray-200 hover:ring-cyan-300 hover:shadow-lg hover:shadow-cyan-100/50">
|
||||
<div class="feature-icon-wrapper flex h-12 w-12 items-center justify-center rounded-xl bg-cyan-50 ring-1 ring-cyan-200 mb-4">
|
||||
<svg class="h-6 w-6 text-cyan-600" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
<polygon stroke-linecap="round" stroke-linejoin="round" points="12,2.5 19.43,6.08 21.26,14.11 15.95,20.64 8.05,20.56 2.74,14.27 4.57,6.22"></polygon>
|
||||
<circle cx="12" cy="12" r="2.2" stroke-linecap="round" stroke-linejoin="round"></circle>
|
||||
<line x1="12" y1="9.8" x2="12" y2="4" stroke-linecap="round"></line>
|
||||
<line x1="14.12" y1="10.24" x2="17.54" y2="6.64" stroke-linecap="round"></line>
|
||||
<line x1="14.14" y1="12.49" x2="19.31" y2="13.67" stroke-linecap="round"></line>
|
||||
<line x1="13.12" y1="14.0" x2="15.12" y2="18.82" stroke-linecap="round"></line>
|
||||
<line x1="10.88" y1="14.0" x2="8.88" y2="18.76" stroke-linecap="round"></line>
|
||||
<line x1="9.86" y1="12.49" x2="4.69" y2="13.79" stroke-linecap="round"></line>
|
||||
<line x1="9.88" y1="10.24" x2="6.46" y2="6.53" stroke-linecap="round"></line>
|
||||
</svg>
|
||||
</div>
|
||||
<h4 class="text-base font-semibold text-gray-900 mb-2">Kubernetes</h4>
|
||||
<p class="text-sm text-gray-500 mb-4 leading-relaxed">Monitor Kubernetes clusters, pods, and workloads in real-time.</p>
|
||||
<div class="flex flex-wrap gap-1.5">
|
||||
<span class="replaces-tag inline-flex items-center rounded-md bg-gray-100 px-2 py-1 text-xs text-gray-600">Lens</span>
|
||||
<span class="replaces-tag inline-flex items-center rounded-md bg-gray-100 px-2 py-1 text-xs text-gray-600">K9s</span>
|
||||
</div>
|
||||
<div class="absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
<svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!-- Profiles -->
|
||||
<a href="/product/profiles" class="feature-card group relative bg-white rounded-2xl p-6 ring-1 ring-gray-200 hover:ring-rose-300 hover:shadow-lg hover:shadow-rose-100/50">
|
||||
<div class="feature-icon-wrapper flex h-12 w-12 items-center justify-center rounded-xl bg-rose-50 ring-1 ring-rose-200 mb-4">
|
||||
<svg class="h-6 w-6 text-rose-600" fill="none" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M15.362 5.214A8.252 8.252 0 0112 21 8.25 8.25 0 016.038 7.048 8.287 8.287 0 009 9.6a8.983 8.983 0 013.361-6.867 8.21 8.21 0 003 2.48z"></path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 18a3.75 3.75 0 00.495-7.467 5.99 5.99 0 00-1.925 3.546 5.974 5.974 0 01-2.133-1.001A3.75 3.75 0 0012 18z"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<h4 class="text-base font-semibold text-gray-900 mb-2">Profiles</h4>
|
||||
<p class="text-sm text-gray-500 mb-4 leading-relaxed">CPU and memory profiling with flamegraphs for performance optimization.</p>
|
||||
<div class="flex flex-wrap gap-1.5">
|
||||
<span class="replaces-tag inline-flex items-center rounded-md bg-gray-100 px-2 py-1 text-xs text-gray-600">Pyroscope</span>
|
||||
<span class="replaces-tag inline-flex items-center rounded-md bg-gray-100 px-2 py-1 text-xs text-gray-600">pprof</span>
|
||||
</div>
|
||||
<div class="absolute top-4 right-4 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
<svg class="w-5 h-5 text-gray-400" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M4.5 19.5l15-15m0 0H8.25m11.25 0v11.25" />
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -20,13 +20,15 @@
|
||||
<option value="exceptions">Exceptions</option>
|
||||
<option value="workflows">Workflows</option>
|
||||
<option value="dashboards">Dashboards</option>
|
||||
<option value="kubernetes">Kubernetes</option>
|
||||
<option value="profiles">Profiles</option>
|
||||
<option value="ai-agent">AI Agent</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="hidden sm:block">
|
||||
<div class="border-b border-gray-200">
|
||||
<nav class="-mb-px flex justify-center flex-wrap gap-x-4 gap-y-2" aria-label="Product feature tabs" role="tablist">
|
||||
<div class="">
|
||||
<nav class="-mb-px flex justify-center flex-wrap gap-x-8 gap-y-4 max-w-5xl mx-auto px-6" aria-label="Product feature tabs" role="tablist">
|
||||
<!-- Status Pages - Emerald -->
|
||||
<button type="button" onclick="showTab('status-pages')" id="tab-status-pages" role="tab" aria-selected="true" aria-controls="panel-status-pages"
|
||||
class="tab-status-pages-button tab-1-button cursor-pointer border-gray-500 text-gray-600 group inline-flex items-center border-b-2 py-4 px-1 font-medium focus:outline-none" tabindex="0" aria-label="Status Pages - communicates service availability to users">
|
||||
@@ -136,11 +138,34 @@
|
||||
</span>
|
||||
<span>Dashboards</span>
|
||||
</button>
|
||||
<!-- Kubernetes - Cyan -->
|
||||
<button type="button" onclick="showTab('kubernetes')" id="tab-kubernetes" role="tab" aria-selected="false" aria-controls="panel-kubernetes"
|
||||
class="tab-kubernetes-button tab-11-button cursor-pointer border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 group inline-flex items-center border-b-2 py-4 px-1 font-medium focus:outline-none" tabindex="-1" aria-label="Kubernetes - monitor Kubernetes clusters and workloads">
|
||||
<span class="flex items-center justify-center w-7 h-7 rounded-full bg-cyan-50 ring-1 ring-cyan-200 mr-2">
|
||||
<svg class="icon-tab-11 text-cyan-600 h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||
<polygon stroke-linecap="round" stroke-linejoin="round" points="12,2.5 19.43,6.08 21.26,14.11 15.95,20.64 8.05,20.56 2.74,14.27 4.57,6.22"></polygon>
|
||||
<circle cx="12" cy="12" r="2.2" stroke-linecap="round" stroke-linejoin="round"></circle>
|
||||
<line x1="12" y1="9.8" x2="12" y2="4" stroke-linecap="round"></line>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Kubernetes</span>
|
||||
</button>
|
||||
<!-- Profiles - Rose -->
|
||||
<button type="button" onclick="showTab('profiles')" id="tab-profiles" role="tab" aria-selected="false" aria-controls="panel-profiles"
|
||||
class="tab-profiles-button tab-12-button cursor-pointer border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 group inline-flex items-center border-b-2 py-4 px-1 font-medium focus:outline-none" tabindex="-1" aria-label="Profiles - CPU and memory profiling with flamegraphs">
|
||||
<span class="flex items-center justify-center w-7 h-7 rounded-full bg-rose-50 ring-1 ring-rose-200 mr-2">
|
||||
<svg class="icon-tab-12 text-rose-600 h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M15.362 5.214A8.252 8.252 0 0112 21 8.25 8.25 0 016.038 7.048 8.287 8.287 0 009 9.6a8.983 8.983 0 013.361-6.867 8.21 8.21 0 003 2.48z"></path>
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M12 18a3.75 3.75 0 00.495-7.467 5.99 5.99 0 00-1.925 3.546 5.974 5.974 0 01-2.133-1.001A3.75 3.75 0 0012 18z"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<span>Profiles</span>
|
||||
</button>
|
||||
<!-- AI Agent - Violet -->
|
||||
<button type="button" onclick="showTab('ai-agent')" id="tab-ai-agent" role="tab" aria-selected="false" aria-controls="panel-ai-agent"
|
||||
class="tab-ai-agent-button tab-11-button cursor-pointer border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 group inline-flex items-center border-b-2 py-4 px-1 font-medium focus:outline-none" tabindex="-1" aria-label="AI Agent - intelligent automation powered by AI">
|
||||
class="tab-ai-agent-button tab-13-button cursor-pointer border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 group inline-flex items-center border-b-2 py-4 px-1 font-medium focus:outline-none" tabindex="-1" aria-label="AI Agent - intelligent automation powered by AI">
|
||||
<span class="flex items-center justify-center w-7 h-7 rounded-full bg-violet-50 ring-1 ring-violet-200 mr-2">
|
||||
<svg class="icon-tab-11 text-violet-600 h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||
<svg class="icon-tab-13 text-violet-600 h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z" />
|
||||
</svg>
|
||||
</span>
|
||||
@@ -922,8 +947,148 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- AI Agent Tab Panel -->
|
||||
<!-- Kubernetes Tab Panel -->
|
||||
<div class="mt-10 tab-11" style="display: none;">
|
||||
<div class="lg:mx-auto lg:grid lg:max-w-7xl lg:grid-flow-col-dense lg:grid-cols-3 lg:gap-24 lg:px-8">
|
||||
<div class="mx-auto max-w-xl px-6 lg:mx-0 lg:max-w-none py-16 lg:px-0">
|
||||
<div>
|
||||
<div class="mt-6">
|
||||
<h2 class="text-2xl font-medium tracking-tight text-gray-900">Full visibility into your Kubernetes clusters. Know what's running and what's broken.</h2>
|
||||
|
||||
<ul role="list" class="mt-8 mb-8 space-y-4">
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-cyan-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-cyan-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Monitor pods, deployments, and services</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-cyan-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-cyan-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Real-time cluster health and resource usage</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-cyan-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-cyan-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Alerts on pod crashes and restart loops</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-cyan-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-cyan-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Works with any Kubernetes distribution</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-cyan-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-cyan-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Integrated with logs, metrics, and traces</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="mt-6">
|
||||
<a href="/accounts/register"
|
||||
class="rounded-md bg-gray-900 px-3.5 py-1.5 text-base font-semibold leading-7 text-white shadow-sm hover:bg-gray-900 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-black hover:text-white">Get
|
||||
started</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-12 sm:mt-16 lg:mt-0 lg:col-span-2">
|
||||
<div
|
||||
class="pl-4 -mr-48 sm:pl-6 md:-mr-16 lg:relative lg:m-0 lg:h-full lg:px-0">
|
||||
<img loading="lazy" class="w-full ring-1 ring-gray-300 rounded-xl shadow-xl lg:absolute lg:left-0 lg:h-full lg:w-auto lg:max-w-none"
|
||||
src="/img/kubernetes.png"
|
||||
alt="Kubernetes monitoring dashboard screenshot">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Profiles Tab Panel -->
|
||||
<div class="mt-10 tab-12" style="display: none;">
|
||||
<div class="lg:mx-auto lg:grid lg:max-w-7xl lg:grid-flow-col-dense lg:grid-cols-3 lg:gap-24 lg:px-8">
|
||||
<div class="mx-auto max-w-xl px-6 lg:mx-0 lg:max-w-none py-16 lg:px-0">
|
||||
<div>
|
||||
<div class="mt-6">
|
||||
<h2 class="text-2xl font-medium tracking-tight text-gray-900">Find performance bottlenecks with CPU and memory profiling. See exactly where time is spent.</h2>
|
||||
|
||||
<ul role="list" class="mt-8 mb-8 space-y-4">
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-rose-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-rose-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">CPU and memory flamegraphs</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-rose-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-rose-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Identify hot code paths and memory leaks</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-rose-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-rose-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Continuous profiling in production</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-rose-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-rose-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">OpenTelemetry native profiling support</span>
|
||||
</li>
|
||||
<li class="flex items-start gap-3">
|
||||
<span class="flex-shrink-0 flex items-center justify-center w-6 h-6 rounded-full bg-rose-100 mt-0.5">
|
||||
<svg class="w-3.5 h-3.5 text-rose-600" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
<span class="text-gray-600 text-base leading-relaxed">Compare profiles across deployments</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="mt-6">
|
||||
<a href="/accounts/register"
|
||||
class="rounded-md bg-gray-900 px-3.5 py-1.5 text-base font-semibold leading-7 text-white shadow-sm hover:bg-gray-900 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-black hover:text-white">Get
|
||||
started</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-12 sm:mt-16 lg:mt-0 lg:col-span-2">
|
||||
<div
|
||||
class="pl-4 -mr-48 sm:pl-6 md:-mr-16 lg:relative lg:m-0 lg:h-full lg:px-0">
|
||||
<img loading="lazy" class="w-full ring-1 ring-gray-300 rounded-xl shadow-xl lg:absolute lg:left-0 lg:h-full lg:w-auto lg:max-w-none"
|
||||
src="/img/profiles.png"
|
||||
alt="Profiles flamegraph dashboard screenshot">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- AI Agent Tab Panel -->
|
||||
<div class="mt-10 tab-13" style="display: none;">
|
||||
<div class="lg:mx-auto lg:grid lg:max-w-7xl lg:grid-flow-col-dense lg:grid-cols-3 lg:gap-24 lg:px-8">
|
||||
<div class="mx-auto max-w-xl px-6 lg:mx-0 lg:max-w-none py-16 lg:px-0">
|
||||
<div>
|
||||
@@ -1001,7 +1166,7 @@
|
||||
|
||||
<script>
|
||||
// Semantic tab slugs in desired order
|
||||
const TAB_ORDER = ['status-pages','monitoring','incidents','on-call','logs','metrics','traces','exceptions','workflows','dashboards','ai-agent'];
|
||||
const TAB_ORDER = ['status-pages','monitoring','incidents','on-call','logs','metrics','traces','exceptions','workflows','dashboards','kubernetes','profiles','ai-agent'];
|
||||
let currentActiveTab = 'status-pages';
|
||||
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
<li><a href="/product/traces" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Traces</a></li>
|
||||
<li><a href="/product/exceptions" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Exceptions</a></li>
|
||||
<li><a href="/product/profiles" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Profiles</a></li>
|
||||
<li><a href="/product/kubernetes" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Kubernetes</a></li>
|
||||
<li><a href="/product/workflows" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Workflows</a></li>
|
||||
<li><a href="/product/dashboards" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">Dashboards</a></li>
|
||||
<li><a href="/product/ai-agent" class="text-sm text-gray-600 hover:text-gray-900 transition-colors duration-200">AI Agent</a></li>
|
||||
|
||||
@@ -44,29 +44,49 @@
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.bitcoin-ascii {
|
||||
color: #fff;
|
||||
font-size: 6px;
|
||||
line-height: 1.1;
|
||||
white-space: pre;
|
||||
letter-spacing: 1px;
|
||||
.bitcoin-logo {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
filter:
|
||||
drop-shadow(0 0 20px rgba(247, 147, 26, 0.8))
|
||||
drop-shadow(0 0 60px rgba(247, 147, 26, 0.5))
|
||||
drop-shadow(0 0 100px rgba(247, 147, 26, 0.3));
|
||||
animation: bitcoinGlow 3s ease-in-out infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes bitcoinGlow {
|
||||
from {
|
||||
filter:
|
||||
drop-shadow(0 0 20px rgba(247, 147, 26, 0.8))
|
||||
drop-shadow(0 0 60px rgba(247, 147, 26, 0.5))
|
||||
drop-shadow(0 0 100px rgba(247, 147, 26, 0.3));
|
||||
}
|
||||
to {
|
||||
filter:
|
||||
drop-shadow(0 0 30px rgba(247, 147, 26, 1))
|
||||
drop-shadow(0 0 80px rgba(247, 147, 26, 0.7))
|
||||
drop-shadow(0 0 140px rgba(247, 147, 26, 0.4));
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 480px) {
|
||||
.bitcoin-ascii {
|
||||
font-size: 8px;
|
||||
.bitcoin-logo {
|
||||
width: 220px;
|
||||
height: 220px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.bitcoin-ascii {
|
||||
font-size: 12px;
|
||||
.bitcoin-logo {
|
||||
width: 280px;
|
||||
height: 280px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 900px) {
|
||||
.bitcoin-ascii {
|
||||
font-size: 16px;
|
||||
.bitcoin-logo {
|
||||
width: 350px;
|
||||
height: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,13 +111,26 @@
|
||||
}
|
||||
|
||||
.bitcoin-hint {
|
||||
color: #f7931a;
|
||||
opacity: 1;
|
||||
font-size: 1.25rem;
|
||||
margin-top: 2.5rem;
|
||||
letter-spacing: 2px;
|
||||
font-family: 'Courier New', 'Monaco', 'Menlo', monospace;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bitcoin-hint .hint-close {
|
||||
display: block;
|
||||
color: #fff;
|
||||
opacity: 0.3;
|
||||
font-size: 0.75rem;
|
||||
position: absolute;
|
||||
bottom: 2rem;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 400;
|
||||
text-transform: none;
|
||||
letter-spacing: 1px;
|
||||
font-family: 'Courier New', 'Monaco', 'Menlo', monospace;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.bitcoin-trigger {
|
||||
@@ -1885,13 +1918,12 @@
|
||||
|
||||
<!-- Bitcoin Easter Egg -->
|
||||
<div class="bitcoin-easter-egg" id="bitcoin-easter-egg" onclick="closeBitcoinEasterEgg()">
|
||||
<pre class="bitcoin-ascii">
|
||||
██████╗ ██╗████████╗ ██████╗ ██████╗ ██╗███╗ ██╗
|
||||
██╔══██╗██║╚══██╔══╝██╔════╝██╔═══██╗██║████╗ ██║
|
||||
██████╔╝██║ ██║ ██║ ██║ ██║██║██╔██╗ ██║
|
||||
██╔══██╗██║ ██║ ██║ ██║ ██║██║██║╚██╗██║
|
||||
██████╔╝██║ ██║ ╚██████╗╚██████╔╝██║██║ ╚████║
|
||||
╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝</pre>
|
||||
<svg class="bitcoin-logo" viewBox="0 0 4091.27 4091.73" xmlns="http://www.w3.org/2000/svg">
|
||||
<g>
|
||||
<path fill="#f7931a" d="M4030.06 2540.77c-273.24,1096.01 -1383.32,1763.02 -2479.46,1489.71 -1095.68,-273.24 -1762.69,-1383.39 -1489.33,-2479.31 273.12,-1096.13 1383.2,-1763.19 2479,-1489.95 1096.06,273.24 1763.03,1383.51 1489.76,2479.57l0.02 -0.02z"/>
|
||||
<path fill="#ffffff" d="M2947.77 1754.38c40.72,-272.26 -166.56,-418.61 -450,-516.24l91.95,-368.8 -224.5,-55.94 -89.51,359.09c-59.02,-14.72 -119.63,-28.59 -179.87,-42.34l90.16,-361.46 -224.36,-55.94 -92,368.68c-48.84,-11.12 -96.81,-22.11 -143.35,-33.69l0.26,-1.16 -309.59,-77.31 -59.72,239.78c0,0 166.56,38.18 163.05,40.53 90.91,22.69 107.35,82.87 104.62,130.57l-104.74,420.15c6.26,1.59 14.38,3.89 23.34,7.49 -7.49,-1.86 -15.46,-3.89 -23.73,-5.87l-146.81,588.57c-11.11,27.62 -39.31,69.07 -102.87,53.33 2.25,3.26 -163.17,-40.72 -163.17,-40.72l-111.46,256.98 292.15,72.83c54.35,13.63 107.61,27.89 160.06,41.3l-92.9,373.03 224.24,55.94 92,-369.07c61.26,16.63 120.71,31.97 178.91,46.43l-91.69,367.33 224.51,55.94 92.89,-372.33c382.82,72.45 670.67,43.24 791.83,-303.02 97.63,-278.78 -4.86,-439.58 -206.26,-544.44 146.69,-33.83 257.18,-130.31 286.64,-329.61l-0.07,-0.05zm-512.93,719.26c-69.38,278.78 -538.76,128.08 -690.94,90.29l123.28,-494.2c152.17,37.99 640.17,113.17 567.67,403.91zm69.43,-723.3c-63.29,253.58 -453.96,124.75 -580.69,93.16l111.77,-448.21c126.73,31.59 534.85,90.55 468.94,355.05l-0.01,0z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
<div class="genesis-text">
|
||||
Block: 0
|
||||
@@ -1905,7 +1937,7 @@ Merkle Root: 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
|
||||
Coinbase: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
|
||||
</div>
|
||||
|
||||
<div class="bitcoin-hint">built by bitcoiners, for bitcoiners. click anywhere to close.</div>
|
||||
<div class="bitcoin-hint">built by bitcoiners, for bitcoiners.<span class="hint-close">click anywhere to close</span></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user