Comments (5)
Hi,
This is not an issue but a question, sorry if it's not the right place to post, I couldn't find anywhere else to ask.
it's a good place to ask :)
So with the current implementation, I don't think you can do that. The only way do to it would be to re-implement the PrometheusClient interface which I can understand is a bit painful just for a prefix URI issue.
What could be possible would be to make configurable the apiPrefix
We are currently migrating the code to prometheus directly. It will ease the changes. This repository is becoming a mirror. So until the migration is finished, I would like to avoid to change the code.
If you are ok with that, you could copy the code of the PrometheusClient and replace the constant apiPrefix = '/api/v1'
by yours siteapi/v1/prom
Once the mirror will be in place, I will change the code to make the apiPrefix
configurable and at this moment you will be able to remove your copy of the implementation of the PrometheusClient
Another question, when I tried this from the Readme, all auto suggestion seems to stop working, did I miss any config?
For this part, I would suggest to open a different issue where you can describe exactly what you did. Like the step to reproduce the issue.
from codemirror-promql.
mmm actually by providing your own implementation of fetchFn
, you could just replace /api/v1/
by /siteapi/v1/prom
using some string replacement.
First parameter of fetchFn
is the requestURI. So you need to change this parameter.
@juliusv, since it's should be quite easy to change the RequestURI
by overriding the implementation of fetchFn
, I'm wondering if it's worth to make the apiPrefix
configurable like I was proposing in my first message. WDYT ?
from codemirror-promql.
thank you for the suggestions, I don't quite understand the fetchFn implementation, does the auto complete functionality need both labels and series to work? Or do I just need to return something like an array of series for it to work?
For example if I'm using this
const promQL = new PromQLExtension().setComplete({ remote: { fetchFn: myHTTPClient } })
where my myHTTPClient
is just something as simple as
const myHTTPClient = async () => {
const resp = await fetch('https://mysite.com/siteapi/v1/prom/series');
return resp;
};
and resp
is something like this
[
{
"__name__": "name1",
"key1": "value1",
"key2": "value2",
},
{
"__name__": "name1",
"key1": "value1",
"key2": "value2",
}
]
Or is fetchFn
something completely different, would you provide an example of what fetchFn looks like please? Thank you very much!
from codemirror-promql.
does the auto complete functionality need both labels and series to work
Yes it is using both endpoints.
I would try more something like that:
const customFetchFn = (input: RequestInfo, init?: RequestInit): Promise<Response> => {
if(typeof input === 'string') {
input = input.replace('/api/v1', '/siteapi/v1/prom')
}
return fetch(input, init);
};
const promQL = new PromQLExtension().setComplete({ remote: { fetchFn: customFetchFn, url: 'https://mysite.com' } })
I didn't really try if my customFetchFn
is working. But I think you can get the point :).
from codemirror-promql.
@juliusv, since it's should be quite easy to change the RequestURI by overriding the implementation of fetchFn, I'm wondering if it's worth to make the apiPrefix configurable like I was proposing in my first message. WDYT ?
I think it's fine to make it configurable, although /api/v1
should be standard for any backend that wants to call itself Prometheus-compatible, API-wise.
from codemirror-promql.
Related Issues (20)
- Weird behavior when using enricher to autocomplete query history HOT 2
- No autocomplete for the 2nd hard of subquery time selector HOT 1
- Support negative offset HOT 12
- Add the parameters of the function indescription HOT 2
- PromQL autocomplete: impossible to get full labels list after comma HOT 5
- Have a way to warm the cache
- Remove strict node requirement HOT 11
- Support autocompleting NaN and Inf HOT 1
- A valid expression is underlined HOT 1
- Support variable format HOT 4
- Cannot parse metrics beginning with `inf` HOT 2
- fetch series with POST not allowed by Grafana
- How to make the editor read only? HOT 2
- Version 17 The api that a package depends on does not exist HOT 4
- Update codemirror dependencies to v0.19 HOT 2
- autocomplete stops working after setting initial metric list HOT 1
- autocompletion is calling /metadata instead of /labels and /series HOT 8
- Update to Codemirror 0.20.X HOT 9
- how can I config gutter? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codemirror-promql.