1"use strict";(self.webpackChunktigera_docs=self.webpackChunktigera_docs||[]).push([["494"],{64727:function(e,n,i){i.d(n,{ZP:function(){return a},d$:function(){return t}});var s=i(85893),r=i(50065);let t=[{value:"How long does it take to get a new Calico Enterprise license?",id:"how-long-does-it-take-to-get-a-new-calico-enterprise-license",level:3},{value:"Is there a grace period?",id:"is-there-a-grace-period",level:3},{value:"Does the web console display license expiration?",id:"does-the-web-console-display-license-expiration",level:3},{value:"What happens when a license expires or is invalid?",id:"what-happens-when-a-license-expires-or-is-invalid",level:3},{value:"What happens if I add nodes beyond what I'm licensed for?",id:"what-happens-if-i-add-nodes-beyond-what-im-licensed-for",level:3},{value:"Do licenses cover free upgrades in Calico Enterprise?",id:"do-licenses-cover-free-upgrades-in-calico-enterprise",level:3},{value:"How do I get information about my license? Monitor the expiration date?",id:"how-do-i-get-information-about-my-license-monitor-the-expiration-date",level:3}];function o(e){let n={a:"a",admonition:"admonition",code:"code",h3:"h3",img:"img",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h3,{id:"how-long-does-it-take-to-get-a-new-calico-enterprise-license",children:"How long does it take to get a new Calico Enterprise license?"}),"\n",(0,s.jsx)(n.p,{children:"After you submit a sales purchase order to Tigera, 1-2 days."}),"\n",(0,s.jsx)(n.h3,{id:"is-there-a-grace-period",children:"Is there a grace period?"}),"\n",(0,s.jsx)(n.p,{children:"Yes, there is a grace period of 30 days (as of April 2022)."}),"\n",(0,s.jsx)(n.h3,{id:"does-the-web-console-display-license-expiration",children:"Does the web console display license expiration?"}),"\n",(0,s.jsx)(n.p,{children:"Yes. The license indicator in the web console (top right banner) turns red when the license expires."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"expiration",src:i(99192).Z+"",width:"406",height:"82"})}),"\n",(0,s.jsx)(n.h3,{id:"what-happens-when-a-license-expires-or-is-invalid",children:"What happens when a license expires or is invalid?"}),"\n",(0,s.jsx)(n.admonition,{type:"caution",children:(0,s.jsx)(n.p,{children:"Although users can still log in to the web console, your deployment is no longer operational. All policy enforcement stops, except for policies in the default tier. In most cases, you will experience broken connectivity (depending on your policies in the default tier). Calico Enterprise stops reporting flow logs, DNS logs, and Calico Enterprise metrics, which affects other UI elements like Service Graph and dashboards. Although some elements may appear to work, actions are not saved, and you should regard your deployment as non-functional. We recommend that you proactively manage your license to avoid disruption."})}),"\n",(0,s.jsx)(n.h3,{id:"what-happens-if-i-add-nodes-beyond-what-im-licensed-for",children:"What happens if I add nodes beyond what I'm licensed for?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Node limits are not currently enforced"}),"\n",(0,s.jsx)(n.li,{children:"All Calico Enterprise features still work"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"do-licenses-cover-free-upgrades-in-calico-enterprise",children:"Do licenses cover free upgrades in Calico Enterprise?"}),"\n",(0,s.jsx)(n.p,{children:"Yes."}),"\n",(0,s.jsx)(n.h3,{id:"how-do-i-get-information-about-my-license-monitor-the-expiration-date",children:"How do I get information about my license? Monitor the expiration date?"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/calico-enterprise/3.17/operations/monitor/metrics/license-agent",children:"Prometheus!"}),". Monitor days till expiration, nodes available, and nodes used."]}),"\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.code,{children:"kubectl"})," to get ",(0,s.jsx)(n.a,{href:"/calico-enterprise/3.17/reference/resources/licensekey#viewing-information-about-your-license-key",children:"license key information"})]}),"\n"]})]})}function a(e={}){let{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(o,{...e})}):o(e)}},10550:function(e,n,i){i.r(n),i.d(n,{default:()=>p,frontMatter:()=>a,metadata:()=>s,assets:()=>c,toc:()=>d,contentTitle:()=>l});var s=JSON.parse('{"id":"operations/monitor/metrics/license-agent","title":"License metrics","description":"Monitor Calico Enterprise license metrics such as nodes used, nodes available, and days until license expires.","source":"@site/calico-enterprise_versioned_docs/version-3.17/operations/monitor/metrics/license-agent.mdx","sourceDirName":"operations/monitor/metrics","slug":"/operations/monitor/metrics/license-agent","permalink":"/calico-enterprise/3.17/operations/monitor/metrics/license-agent","draft":false,"unlisted":false,"editUrl":"https://github.com/tigera/docs/edit/main/calico-enterprise_versioned_docs/version-3.17/operations/monitor/metrics/license-agent.mdx","tags":[],"version":"3.17","frontMatter":{"description":"Monitor Calico Enterprise license metrics such as nodes used, nodes available, and days until license expires."},"sidebar":"calicoEnterpriseSidebar","previous":{"title":"BGP metrics","permalink":"/calico-enterprise/3.17/operations/monitor/metrics/bgp-metrics"},"next":{"title":"Policy metrics","permalink":"/calico-enterprise/3.17/operations/monitor/metrics/policy-metrics"}}'),r=i("85893"),t=i("50065"),o=i("64727");let a={description:"Monitor Calico Enterprise license metrics such as nodes used, nodes available, and days until license expires."},l="License metrics",c={},d=[{value:"Big picture",id:"big-picture",level:2},{value:"Value",id:"value",level:2},{value:"Concepts",id:"concepts",level:2},{value:"About Prometheus",id:"about-prometheus",level:3},{value:"About License Agent",id:"about-license-agent",level:3}
1,{value:"FAQ",id:"faq",level:3},...o.d$,{value:"How to",id:"how-to",level:2},{value:"Add license agent in your Kubernetes cluster",id:"add-license-agent-in-your-kubernetes-cluster",level:3},{value:"Create alerts using Prometheus metrics",id:"create-alerts-using-prometheus-metrics",level:3},{value:"Additional resources",id:"additional-resources",level:2}];function h(e){let n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"license-metrics",children:"License metrics"})}),"\n","\n",(0,r.jsx)(n.h2,{id:"big-picture",children:"Big picture"}),"\n",(0,r.jsx)(n.p,{children:"Use the Prometheus monitoring and alerting tool to get Calico Enterprise license metrics."}),"\n",(0,r.jsx)(n.h2,{id:"value",children:"Value"}),"\n",(0,r.jsx)(n.p,{children:"Platform engineering teams need to report licensing usage on third-party software (like Calico Enterprise) for their CaaS/Kubernetes platforms. This is often driven by compliance, but also to mitigate risks from license expiration or usage that may impact operations. For teams to easily access these vital metrics, Calico Enterprise provides license metrics using the Prometheus monitoring and alerting tool."}),"\n",(0,r.jsx)(n.h2,{id:"concepts",children:"Concepts"}),"\n",(0,r.jsx)(n.h3,{id:"about-prometheus",children:"About Prometheus"}),"\n",(0,r.jsx)(n.p,{children:"The Prometheus monitoring tool scrapes metrics from instrumented jobs and displays time series data in a visualizer (such as Grafana). For Calico Enterprise, the \u201Cjobs\u201D that Prometheus can harvest metrics from the License Agent component."}),"\n",(0,r.jsx)(n.h3,{id:"about-license-agent",children:"About License Agent"}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.strong,{children:"License Agent"})," is a containerized application that monitors the following Calico Enterprise licensing information from the Kubernetes cluster, and exports the metrics through the Prometheus server:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Days till expiration"}),"\n",(0,r.jsx)(n.li,{children:"Nodes available"}),"\n",(0,r.jsx)(n.li,{children:"Nodes used"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"faq",children:"FAQ"}),"\n",(0,r.jsx)(o.ZP,{}),"\n",(0,r.jsx)(n.h2,{id:"how-to",children:"How to"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#add-license-agent-in-your-kubernetes-cluster",children:"Add license agent in your Kubernetes cluster"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"#create-alerts-using-prometheus-metrics",children:"Create alerts using Prometheus metrics"})}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"add-license-agent-in-your-kubernetes-cluster",children:"Add license agent in your Kubernetes cluster"}),"\n",(0,r.jsx)(n.p,{children:"To add the license-agent component in a Kubernetes cluster for license metrics, install the pull secret and apply the license-agent manifest."}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Create a namespace for the license-agent.","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:" kubectl create namespace tigera-license-agent\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Install your pull secret.","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:" kubectl create secret generic tigera-pull-secret \\\n --type=kubernetes.io/dockerconfigjson -n tigera-license-agent \\\n --from-file=.dockerconfigjson=<path/to/pull/secret>\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["Apply the manifest.","\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:" kubectl apply -f https://downloads.tigera.io/ee/v3.17.4/manifests/licenseagent.yaml\n"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"create-alerts-using-prometheus-metrics",children:"Create alerts using Prometheus metrics"}),"\n",(0,r.jsx)(n.p,{children:"In the following example, an alert is configured when the license expiry is fewer than 15 days."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",children:"apiVersion: monitoring.coreos.com/v1\nkind: PrometheusRule\nmetadata:\n name: calico-prometheus-lice
1nse\n namespace: tigera-prometheus\n labels:\n role: tigera-prometheus-rules\n prometheus: calico-node-prometheus\nspec:\n groups:\n - name: tigera-license.rules\n rules:\n - alert: CriticalLicenseExpiry\n expr: license_number_of_days < 15\n labels:\n severity: Warning\n annotations:\n summary: 'Calico Enterprise License expires in less than 15 days'\n description: 'Calico Enterprise License expires in less than 15 days'\n"})}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsx)(n.p,{children:"If the Kubernetes api-server serves on any port other than 6443 or 443, add that port in the Egress policy of the license agent manifest."})}),"\n",(0,r.jsx)(n.h2,{id:"additional-resources",children:"Additional resources"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/calico-enterprise/3.17/reference/resources/licensekey",children:"LicenseKey resource"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"/calico-enterprise/3.17/operations/monitor/prometheus/alertmanager",children:"Configure Alertmanager"})}),"\n"]})]})}function p(e={}){let{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},99192:function(e,n,i){i.d(n,{Z:function(){return s}});let s=i.p+"assets/images/expiration-8dbd59696e3a85c6e108f665ae473ca6.png"},50065:function(e,n,i){i.d(n,{Z:function(){return a},a:function(){return o}});var s=i(67294);let r={},t=s.createContext(r);function o(e){let n=s.useContext(t);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.