-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow querying tag in listKeyValues #499
Comments
@Jaelid, can you provide what Azure AppConfiguration client are you using (SDK, Configuration Providers, CLI, etc.)? There are KeyFilters and LabelFilters. |
Hi @drago-draganov yes KeyFilters work in situation where the namespace is relevant for instance ApplicationX:RabbitMq and LabelFilters are good where we have one key with varying values such as the labels dev,test,prod. However I haven't been able to find a workable way of getting back a specific collection of key values when a config might be shared. We can't change the key to include an application name as they key could be used by multiple applications. Perhaps we could change the label to be like a tag "ApplicationX-dev,ApplicationY-dev" but I think we may run into issues down the line and its not a clear solution. We are currently using azure-appconfiguration = "==1.1.1" for our python services running on azure functions with keda and kubernetes However the startup times are only an issue with our python services currently, we would like these to make as few http requests as possible. We have considered baking these into the pipeline instead but we loosed the ability to change config values at runtime. |
For selecting shared settings and namespaces, we indeed recommend the composition you use. here Perf wise, we should look into that Python SDK to see the reason. Do you mind opening an issue here ? Azure AppConfigration Service response times are usually within a few milliseconds. You can also send both request (shared settings and app specific) simultaneously to avoid the combined latency. |
I don't think there is a performance issue with the python SDK especially as we load all keys in one request instead of multiple. I do think there is great value in allowing tag based querying however as this will return just relevant keys and will reduce requests. Additionally as we're moving from octopus deploy where we could see which application is associated with which keys we will be maintaining this tagging of keys in app config so it would be beneficial to utilise it and will also enforce updating the tags (as the config value wouldn't be returned if it hadn't been tagged appropriately). Currently the only way to query on tag is to retrieve all keys and filter in code which seems redundant. |
I agree that filtering by tags is useful and we are looking into allowing that. I don't have specific ETA at the moment. My intention was to address the original issue when namespace specific settings are combined with shared setting. |
Many thanks. Happy to just have it as an enhancement to query with tags perhaps I didn't convey that correctly. I don't believe there is a performance hit when namespaces and shared settings are combined and we can run loading all settings until the tagging feature is implemented. We're running some 100+ microservice so it's unlikley the migration project to app config will be completed within the year. |
Thanks for bringing that up! It helps us prioritize. |
In situations where startup times are imperitive then it would be good to be able pre filter the list of returned values based upon tag. We can use listKeyValues api call to get the key and and value in one api call (only having to do key vault queries afterwards) but for a large key store paging would come into play. As an example I would like to tag keys with "RabbitMq" and "MainSqlDatabase" then I can fetch only the relevant keys
listKeyValues?tags=RabbitMq,MainSqlDatabase
Or perhaps settings relevant to the application
listKeyValues?tags=ApplicationX
The text was updated successfully, but these errors were encountered: