opencost / opencost-website Goto Github PK
View Code? Open in Web Editor NEWOpenCost website, blog, documentation.
Home Page: https://opencost.io
License: Apache License 2.0
OpenCost website, blog, documentation.
Home Page: https://opencost.io
License: Apache License 2.0
When creating this project website, one thing we observed is that most k8s projects have their own Slack workspaces, e.g.
https://github.com/open-policy-agent/opa
https://github.com/cilium/cilium
We thought it was a bit too early to create a dedicated workspace and still be able to manage it effectively when we launched. I propose revisiting this soon. I suspect we'll want to create a new workspace but there may be other approaches.
As I first time user, I was unaware of the existence of the Redoc page https://www.opencost.io/api, as it is not linked in the documentation "API usage" page (https://www.opencost.io/docs/api). There's should be a link.
This page: https://github.com/kubecost/opencost-website/blob/main/docs/install.md
Currently has a 404 link here: https://github.com/kubecost/opencost-website/blob/main/docs/install.md
We should be sure to test changes on this page really careful given that mistakes will likely mean users never get Opencost.
Add a new https://www.opencost.io/docs/integrations/ page for it
https://github.com/backstage/backstage/tree/master/plugins/opencost needs to be referenced and instructions updated accordingly
Now that the blog has 3(!) posts, it's worth making sure they all use the <~--truncate--> tag to not render everything
https://docusaurus.io/docs/blog
The yellow styling on this star count looks a little inconsistent
Thoughts on doing something to show that this star count is associate with GH link? Here's another example I found:
I'd call low priority but just wanted to see.
I deployed a separate Prometheus for opencost and scraped my own infrastructure with existing cAdvisor, KSM, and node-exporter, and want to drop all other metrics that are not used on opencost and have no need for them.
I tried to dig into the code, but it's not a proper approach.
The missing part which I opened an issue for is the lack of a clean and exact list of consumed and generated metrics by opencost in docs, neither on kubecost nor on opencost.
I checked the exposed metrics and queried metrics by opencost, and they showed more and different metrics than docs.
Suggestion:
Provide a clean list for generated and consumed metrics in the docs, or place it on a separate file on the repo, to keep users stack updated with it.
Now that OpenCost can be deployed without K8s, proposal is that we update documentation including: https://www.opencost.io/docs/installation/install
Add an enterprise support page to Opencost.io
According to the CNCF website guidelines, we can add a page support and direct it to Kubecost and any other providers.
See Point 3. https://github.com/cncf/foundation/blob/main/website-guidelines.md
@dwbrown2 & @alexkubecost,If it is too soon to add this page please feel free to close out.
Hi,
The documentation (https://www.opencost.io/docs/install#installing-opencost) requires "Add the [scrapeConfig]" -
where?
Thank you,
Ron
The query examples under API Usage page contains referance to localhost:9090
. Shouldn't this point to the API server instead, i.e. localhost:9003
?
Please let me know if you'd like me to create PR.
The Slack link in the Opencost website's footer sends those who follow it directly to the Opencost channel in the CNCF Slack workspace. Those that don't currently belong to the CNCF Slack workspace will be prompted to login to the CNCF workspace and will then receive an error saying they do not currently have an account.
The link on the Community page in the docs directs people to the sign-up page.
the prometheus installation is missing the prometheus-community prefix.
I created a PR to fix this
I was trying to customize KSM metrics emitted by the OpenCost.
There were no clean docs on how to configure that. Finally I found from exploring the code some variables like EMIT_KSM_V1_METRICS
or EMIT_KSM_V1_METRICS_ONLY
Also, seems there is no doc for any other customizable environment variables.
As a developer/engineer I would like to know how to overwrite the KUBECOST_NAMESPACE env variable on the opencost exporter pod so the pod not necessarily tries to execute in a pot. non existent namespace. Having this in the docs would also save time and does not enforce a developer/engineer to search through slack.
As mentioned in this thread, I would like to extend the docs for better transparency.
However, I'm not sure what the best place on the website would be? To me, no place sticks out here.
And, imho, also a contribution to the values.yaml of the helm chart should be made. Wdyt?
This is a great looking website but a small feature which is dark mode is absent in it so I would like to contribute to site in order to enable DARK MODE.
Request you to assign me the issue and also label it as Hacktoberfest-accepted.
Thank you!๐
With the addition of opencost/opencost-helm-chart#109, the instructions for setting up custom pricing with the helm chart could use a refresh.
Is your feature request related to a problem? Please describe.
Documentations on multi cluster setup with opencost.
Describe the solution you'd like
I am trying to figure out how opencost can be expanded for a multi cluster setup ? do I install it individually on every cluster I have ? Is there any client server process I can follow ?
Is it similar to kubecost setup?
At the moment, there is no clear way(atleast for me ) to understand how open cost be setup for a multi cluster use case.
Describe alternatives you've considered
Add examples and documentation on this can be setup.
Additional context
Add examples and check in under the opencost.
Describe the bug
When using Cloud costs for GCP json.Unmarshal() returns error. missing 'projectID' property
. Bigquery configuration requires field projectID
and not project_id
as stated in the documentaion for GCP Cloud Costs.
To Reproduce
Steps to reproduce the behavior:
helm install opencost opencost-charts/opencost --namespace opencost --create-namespace -f values.yml
Expected behavior
Documentation will be fixed or aditional json decoding property will be added to GCP BigQueryConfiguration but not sure if it is possible to accept unmarshall for more field names for one property.
Which version of OpenCost are you using?
v1.108.0
Additional context
Complete error message from container I can read with k9s is:
ERR MultiCloudWatcher: Error getting file '/var/configs/cloud-integration/cloud-integration.json': loadFile: Error reading json: unmarshalerDecoder: BigQueryConfiguration: FromInterface: FromInterface: missing 'projectID' property, error found in opencost/opencost#10 byte of ...|
content of values.yml file for Helm is:
opencost: cloudIntegrationSecret: "opencost-cloud-integration" exporter: cloudProviderApiKey: "xxxxx" cloudCost: enabled: "true"
From a recent email response:
OpenCost provides real-time monitoring of your Kubernetes cluster and provides the on-demand list pricing for the cloud resources in use by your cluster. OpenCost is a CNCF sandbox project, so it is free to use and open to contributions from all community members. OpenCost has a UI, but the goal of OpenCost is to become the "Prometheus of cloud cost monitoring" and allow other solutions to be built on top of that data.
OpenCost is the engine for Kubecost which adds integration and reconciliation with your actual bill, so it will provide more accurate cost numbers for your cluster. Kubecost allows you to associate cloud costs outside your cluster with applications within the cluster (ie. object storage, DBaaS, etc.), OpenCost does not support this yet. Kubecost also provides recommendations, governance, alerting, federated clusters, a SaaS version, and support for their commercial offering.
The guide for providing pricing for on-promises pricing is unclear for newcomers to OpenCost. It would be really helpful and a timesaver if the guide contained a section where it's stated and shown how the custom pricing (default.json
) is mounted to the opencost
container in the deployment config.
Let me know you'd like me to create a PR where I give it go.
apiVersion: v1
kind: ConfigMap
metadata:
name: opencost-conf
data:
default.json: |
{
"provider": "custom",
"description": "Default prices based on GCP us-central1",
"CPU": "0.1",
"spotCPU": "0.1",
"RAM": "0.2",
"spotRAM": "0.2",
"GPU": "1",
"storage": "0.3",
"zoneNetworkEgress": "0.01",
"regionNetworkEgress": "0.01",
"internetNetworkEgress": "0.12"
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: opencost
labels:
app: opencost
spec:
replicas: 1
selector:
matchLabels:
app: opencost
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: opencost
spec:
restartPolicy: Always
serviceAccountName: opencost
containers:
- image: quay.io/kubecost1/kubecost-cost-model:latest
name: opencost
resources:
requests:
cpu: "10m"
memory: "55M"
limits:
cpu: "999m"
memory: "1G"
env:
- name: PROMETHEUS_SERVER_ENDPOINT
value: "http://my-prometheus-server.prometheus.svc" # The endpoint should have the form http://<service-name>.<namespace-name>.svc
- name: CLOUD_PROVIDER_API_KEY
value: "AIzaSyD29bGxmHAVEOBYtgd8sYM2gM2ekfxQX4U" # The GCP Pricing API requires a key. This is supplied just for evaluation.
- name: CLUSTER_ID
value: "cluster-one" # Default cluster ID to use if cluster_id is not set in Prometheus metrics.
imagePullPolicy: Always
volumeMounts:
- mountPath: /models/default.json
name: opencost-defaults
subPath: default.json
- image: quay.io/kubecost1/opencost-ui:latest
name: opencost-ui
resources:
requests:
cpu: "10m"
memory: "55M"
limits:
cpu: "999m"
memory: "1G"
imagePullPolicy: Always
volumes:
- name: opencost-defaults
configMap:
name: opencost-conf #
items:
- key: default.json
path: default.json
So folks know where to go to learn more about OpenCost and meet other cool folks ;)
Helm installation document requires update for more detailed instructions.
We should move this repo now that Opencost is a CNCF project.
https://www.opencost.io/docs/integrations/opencost-exporter
https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-opencost-exporter needs to be referenced and instructions updated accordingly
Once opencost/opencost#2268 is merged docs should be added for running outside of Kubernetes. The blog post https://www.opencost.io/blog/k8sless-opencost needs to be updated to mention that you no longer need the KUBERNETES_ENABLED
environment variable
We should configure branch protection on main
to prevent direct commits and enforce a peer-review process.
As part of CNCF onboarding we'll want to support this: https://github.com/cncf/foundation/blob/master/website-guidelines.md
Override the aws.json, look at https://www.opencost.io/docs/configuration/on-prem#custom-pricing-using-the-opencost-helm-chart and replace the aws.json instead of the default.json
@alexkubecost reached out to me as well as a few others with the proposition of incorporating a visual table graphic on the OpenCost website to better explain its features and benefits as well as how it differs from Kubecost and its tiers. Alex and others put together a great doc here detailing this information (feel free to contribute as needed).
The following text is from an email sent by Brett:
"My current idea for how we want to convey this information to users would come in two forms: the first would be an easily-digestible graphic which shows the four columns of products with only the most essential and key differences. This graphic would go on the main OpenCost page, and can be placed on the Welcome page for the docs. The second would be a more in-depth table, containing most of the information in this spreadsheet. We can add it as its own page in the OpenCost docs and create the table in Markdown, allowing us to add possible hyperlinks for existing documentation or expand on it as the docs grow.
I think this approach will allow us to have a promotional and simple graphic about OpenCost which can be reproduced when needed for future purposes, while also including a more information-centric yet still manageable table for users who need to scrutinize more between the products. What I'm reaching out for is general feedback/impressions, as well as what rows we should be adding to the condensed graphic. I think Purpose, Cost, Number of Nodes, and Deployment would be the main rows included.
If all of this looks good, please let me know. Otherwise, provide ideas in this chain. I would like to get first impressions by Wednesday of next week, so I can get the project moving up to speed."
Hey everyone,
Wondering what Q4 plans are currently in effect for expanding OpenCost docs, and what help I can provide. I think we made some great steps for our OpenCost installation with @jessegoodier's help, distinguishing OpenCost's installation from Kubecost wherever possible. I'm thinking we should consider what content could be exported from our Kubecost docs, and what other procedures/tutorials users have been asking for for OpenCost.
Have this draft doc started:
https://docs.google.com/document/d/1Ljc8udVi4gKSPV7efwbdUnAJGofZRVMwS7lAFAhxr6Q/edit
We've had a couple people express interest in seeing the currently supported OpenCost integrations. As this number is quickly growing, I think it would be interesting to add a new docs and maybe homepage section for those that support.
wrap them in <a href="..." target="_blank" rel="noopener noreferrer">...</a>
Implement an automated link-checker similar to kubecost/docs#703
My findings with lychee is it doesn't like dropping the .md
from links, but maybe there's a setting around that.
As the number of OpenCost integrations grows, we should create a dedicated page for these IMO. Proposal is that it could highlight existing integrations + give guidance on how to integrate.
Have got a few questions in chat recently about hooking up to spot instance data feed. Seems like it would be helpful to have clear info on:
Where the AWS documentation is for spot instance data feed
Configuring IRSA for opencost
AWS IAM Policy needed to access the bucket
Env Variables for grabbing spot feed data (I think the following)
S3_SPOT_BUCKET: "${s3_bucket}"
S3_SPOT_PREFIX: "${s3_prefix}"
ACCOUNT_ID: "${account_id}"
The kubecost documentation is here and should be helpful:
https://docs.kubecost.com/install-and-configure/install/cloud-integration/aws-cloud-integrations/aws-spot-instances
I want to integrate AWS-cloud cost to opencost but could not able to find out enough documentation about how we can create different stuff like:
with terraform
CNCF guidelines recommend that OpenCost has a dedicated page for enterprise offerings: https://github.com/cncf/foundation/blob/main/website-guidelines.md
I believe the Cilium website provides a good example implementation: https://cilium.io/
@Annalillie has a great design proposal too
Making a note of plans to eventually create an OpenCost integrations doc
Describe the bug
The documentation web page about Cloud costs is missing a part about setting up the helm variable cloudCost.enabled.
To Reproduce
Create service account.
Create cloud-integration.json file according to the documentation.
kubectl create secret generic opencost-cloud-integration --from-file=cloud-integration.json -n opencost
.
Specify kubernetes secret name in values.cloudIntegrationSecret for Helm values.yaml.
Do NOT set cloudCosts.enabled to "true" .
helm install opencost opencost-charts/opencost --namespace opencost --create-namespace -f values.yml
.
In Opencost UI there is written that Cloud cost is not enabled.
Expected behavior
Documentation about this environment variable will be appended or core/pkg/env/env.go envMap.Has() function will be used for checking if cloudIntegrationSecret is present.
Which version of OpenCost are you using?
v1.108.0
Additional context
My WORKING configuration file is as follows:
opencost:
cloudIntegrationSecret: "opencost-cloud-integration"
exporter:
cloudProviderApiKey: "xxxxx"
cloudCost:
enabled: "true"
To reproduce the bug remove cloudCost.enabled.
There is a broken link on the "documentation" page, the strange thing is that depending on the path taken to the page will determine if the link is broken or not. This leads me to believe the issue may be related to the "Documentation" link on the main page and not the "documentation" page itself.
To reproduce:
Scroll to the bottom of the page and click the "Documentation" link. Note: Clicking the documentation link on the top of the page will not result in the issue.
Click the "Install options" on the page which will result in a broken link. Note the missing trailing slash / in the address bar from the link on the previous page. This is most likely the issue.
After clicking the link, it fails because /docs/ is missing from the path.
This screen shot is from following the "Documentation" link at the top of the page. Note that it includes a trailing slash / in the URL.
Is your feature request related to a problem? Please describe.
It would be nice to add docs on how to verify Opencost pricing details from Cloud Provider side. I see that there is OpenCost Specification, but it is nice to add some quick verification.
This is more like "Need Help" at the moment for us to verify quickly Opencost pricing details and use it production. We just deployed opencost on Dev, need to verify the opencost pricing details and can complete rely on this tool
Describe the solution you'd like
Quick verification steps to verify Opencost pricing details for all supported cloud providers.
Describe alternatives you've considered
Additional context
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.