This repository has been archived by the owner on Jan 21, 2022. It is now read-only.
Releases: cloudfoundry-attic/cf-abacus
Releases · cloudfoundry-attic/cf-abacus
Euro 1.1.5
Features:
- RabbitMQ HA setup is supported
- Services bridge uses all service GUIDs for a service name
- Abacus apps can be pushed with a custom CF stack
Fixes:
- Separate install and stage
- Bump bootstrap to 4.3.1
- Enable sampler's worker integration-test
Euro 1.1.4
Usage metering
- rewrite of collector and meter
- RabbitMQ used to buffer incoming docs and prevent overload
- usage docs are automatically retried for 3 days
- added dedup id
Usage accumulation and aggregation
- aggregation fails for NaN, null or undefined; zero (0) is allowed
- SLACK semantics changed to "time after month end"
- removed redundant dataflow mapper
- shift timewindows for consumers
- store previous month data in own partition
- fixed: time-window shifting
Usage reporting
- return 206 on missing space data
- remove
charge
andprice
from reports - fixed: throttle queue is blocked after 10000 failed requests
Sampling API
- introduced
reciever
andworker
Plans
- fix
linux-container
measure units
Data format and processing
- added account type
- usage is rejected with 451 response for configured account types
CF integration
- fixed: renewer failed to start due to existing carryover db doc
- fixed:
cfpush
does not delete the old app - support substitution variables in
cfpush
- support
routes
andbuildpacks
manifest elements incfpush
Service Broker
- refactor update service flow
Performance
- interleave
healthchecker
calls - do not use 'cluster'
- optimize reporting
Misc
- removed CouchDB support
- removed Concourse pipelines
- removed rc profiles
- removed
webapp
binary - improved plan-tester
- improve
healthchecker
error handling - removed unused
matrix
module - introduce custom
metrics
module oauth
module token can be initialized only once- added metrics in
express
,webapp
,collector
,meter
modules - use docker compose file for MongoDB and RabbitMQ dependencies
- refactor
tests
structure - simplified Java and Node.js demo apps
- extracted clients for Abacus APIs
- added
grep
andfgrep
flags toabacus-mocha
Euro 1.1.3
Fixed npm package versions
Euro 1.1.2
Usage reporting
- missing consumer data will result in 206 status code
charge
andsummary
are set to 0, if the plan has no such metric defined
Data format and processing:dataflow
- meter function errors will result in
422
responses
Misc
- fixed server time-out if no cluster is used
healthchecker
is now asynchronous- new demo script for posting usage (thanks to Johannes Alberti)
Previous release v1.1.1
Euro 1.1.1
Usage reporting
- Reports no longer contain hours, minutes or seconds data
- Bigger reports can be generated by increasing connection timeout
Usage accumulation and aggregation
- Documents with different resource_id no longer considered duplicate
- Aggregate fn can no longer wipe-out all aggregations producing
NaN
Plans
- Plans are no-longer bound to specific organization (
IGNORE_ORGANIZATION=true
)
Data format and processing:dataflow
- hour, minute and second time-windows are no longer calculated
- fixed db call size calculations
- plan function errors will result in
422
responses - spaces are stored in different documents to reduce org docs size
CF integration
- app & service bridges use system scope to submit usage (no max-inflight protection)
- service bridge supports update events
Service Broker
- merged cf-abacus-broker features into cf-abacus
- update-service supports custom configuration
- use OSBAPI context for org/space metadata
Performance
- system scope requests are not affected by max-inflight protection
- disabled compression of requests between stages (5-15% docs/sec improvement)
- reduced number of objects that will be garbage-collected
- plan functions are cached in all stages (10-15% docs/sec improvement)
- connection timeout is now configurable ('CONNECTION_TIMEOUT')
- rate-limiting on per-resource-provider basis (
429
response) - max-inflight returns
503
Deployment & Test pipelines
- blue-green flag is now read correctly from manifest
- introduced x-large profile
- increased org-quota to allow x-large profile deployments
- fixed wait for ongoing db operations
- fixed restart of failed apps on Linux
- added routes mapping in test-pipeline
Misc
- MongoDB operations now use majority write concern by default
- added
chai-as-promised
to make async/await testing easier perf
test can generate reproducible organization ids- added more plan-tester cases
batch
andthrottle
modules now export their default settingsabacus-moment
supports moment.js duration
Previous release v1.1.0
Euro 1.1.0
Usage reporting
- shift time-windows data
- GraphQL reports no longer require
summary
- ignore plans that changed metrics
- skip consumers with missing docs
- variable names refactoring
- reduce used memory
Plans
- mapping API
Data format and processing (dataflow)
- allow configurable time-windows via
TIME_WINDOWS_SIZES
CF integration
- application & service bridges rewritten
Security
- support Eureka with basic authentication
- introduce authentication/authorization support for provisioning plugin
- disable self-signed certificates.
SKIP_SSL_VALIDATION
variable turns off cert validation - limit max number of requests (OOM/DoS protection)
Performance
- using Node.js 8.9: up to 1 second / 1000 documents speed-up
- plan ID access is correctly cached
- cluster workers can be auto-scaled to match CPUs
- reduced reporting used memory
- offload CC by polling less frequently by default
Deployment & Test pipelines
- deploy pipeline
- parallel deployment of up to 50 applications
- purge no longer part of the pipeline
- remove password dumps
- support scaling-up applications
- test pipeline
- recreation of org & user are now optional
- removed
cfpack
Misc
- new
plan-tester
module - replaced npm with yarn for build & testing
- dbclients
- introduced
readAllPages
- memdown not used to drop DB
- introduced
- integration tests 2x speedup
- removed anomalous usage detection
- extracted
basic
module perf
module- configurable granularity and size of count window
- roll counters on health check
batch
fails just the group with error- replay uses paging
- parallelize Travis build
mocha
can run individual files- code reformat with 120 columns and 1tbs
cmdline
usescf curl
Previous release v1.0.0
Euro - first production release
Usage metering and rating
- disable bloom filter
Usage accumulation and aggregation
- more sampling options
- extract reducing logic in dataflow
- fixed shifting bug in aggregator
- accumulator does not persist first start
- added calculation details
- include previous quantity in windows that change during aggregation
- include resource_instance_id and consumer_id in aggregated org document
- move resource instance references to aggregated consumer docs
- support down-sampling of accumulated and aggregated usage history
- more flexible accumulate and aggregate functions
Usage reporting
- cache eval functions (speedup 2x-4x)
- return a list of resource instances, adjusted to reporting time in org usage report
- show 0 charge in report
- export helper functions in abacus-usage-reporting
- add reportError function
- accountUsage uses the correct endpoint
- remove resource_id, plan_id and previous_quantity from the report
- report only events that are older than a limit
CF integration
- (experimental) introduce generic service bridge
- handle seconds-level of precision in events
- introduce carry-over state DB
- extract common logic in abacus-report, abacus-paging and carry-over modules
- renewer ignores errors in communication with collector
- do not try to renew usage out of slack window
- renewer does not fail without input data
- handle business errors
- support for purged event stream
- do not submit stop usage at month boundary
- transfer carry over usage to the current month db
- improved statistics and error-reporting endpoint
- app bridge supports org filtering
- ignore "STAGING" app usage events
- make renewer retry interval configurable
- skip conflicting usage (409) responses
Data format and processing (dataflow)
- use end/start time in duplicate detection documents
- error databases for every month
- changed resource level aggregated_usage
- ignore 409 while logging input
- do not throw 409 without dedupe
- detect errors with no sink
- log errors in their respective months
- post to output DB when sink returns 409
- propagate usage data across pipeline
- include resource_id and plan_id as a part of the document
- configurable retry post to dataflow sink
- support localhost sink
- use separate keys to address sink partitions
- remove id field from stored docs
- shrink the consumer ids for saving space
- add provider, resource, plan ids to collected usage keys
Plans
- validation
- add schema validation of default rating and pricing plans
- improve error handling and harden abacus-eval
- validate plan functions using ESLint
- fail if unused variables (but not function args) found
- remove container plan
- extract plan mappings to make local development easier
- remove path param plan_id from create endpoint in Provisioning
- configurable caching duration for the plans
- added missing previous_running_instances in linux-container metering plan
- introduce metrics type in metering plans
Deployment
- deploy pipeline
- enable embedding in "landscape" release project
- support CF installations without LB
- support insecure CF installation
- support use of (asynchronous) DB services instead of DB URLs
- update users, db, security groups, UAA clients instead of delete-create
- fail when creating or updating a service failed
- support non-paid services
- change CF_API to CF_SYS_DOMAIN
- increase the number of workers for CF stage & push in pipelines
- support for multiple Abacus installations (ABACUS_PREFIX)
- replace-template supports duplicate use of a variable
- improved variable documentation
- post-infra, pre-start and pre-configure hooks
- configurable number of retries for app start, slack interval and DEBUG
- test pipeline
- add duplication tests
- add retry for performance tests
- introduced monitoring pipeline
- uptime & availability
- remove OPTIONS endpoint
- move healthcheck endpoint from eureka to webapp module
- cfpush supports custom buildpack
- cfpush reads appname from manifest instead of package.json
- cfpush retries operations
- support PRIMARY_DOMAIN env.variable
- support ABACUS_ROOT env.variable in cfpack
- add Node options env.variable
- support new CF CLI in cfsetup script
- support PCFDev and custom bosh-lite hosts
- do not pack tests
- config that skips most intermediate DBs
Security
- remove node.js version and memory usage headers
- authorize before accessing db in reporting and dataflow
- use authentication with mapper replay
- replay works with secured Abacus
- fix authorization in smoke test and demo
- use read-only Cloud Controller scope for cf-applications
- reporting authorization with system token
- enable SSL validation in mongoclient by default
Performance
- store only failed ids instead full docs on replay
- limit the number of db connections used to list error docs
- support zero delay batch config with BATCH_DELAY=0
- back-propagate once per batch instead of once per sample
- allow concurrent posts of reduction output docs
- introduce minimum hystrix delay
Misc
- dbclients
- query function added to couchclient
- new couch session store module
- configure DB names using env variables
- introduce DB_OPTS in mongo and couch clients
- add distinct values query in mongo client
- extract dbcommons module with logic for bulk & batch db operations
- extend db clients with drop partitions capabilities
- support for DB aliases and multiple mongo DBs
- fix mongo and couch connection pooling issues
- disable db pooling for in-memory pouch
- drop databases instead of clearing memdown globalStore
- fix collection names generation in mongoclient
- mongoclient supports query parameters with collections
- return correct flags in case of conflict in couchclient
- delete rev field instead of setting it undefined
- testing
- helper scripts to select local PouchDB, MongoDB and CouchDB servers
- do not start test pouchserver when using MongoDB or CouchDB
- execute each test file in a separate process
- added duplication and performance tests to Travis
- disable integration tests if units failed in Travis
- disable Bluemix deploy in Travis
- added Mongo 2.6 and 3.2 builds in Travis
- add sinon.assert as global object
- do not show fake coverage with NO_ISTANBUL
- support time-shifting with abacus-moment module
- added smoke test for productive installations
- anomalous usage detection
- add base logic
- introduce iterable module
- add weight matrices to matrix module
- skeleton of optional analyzer service module
- other
- remove babel and migrate to ES6
- remove bootstrap npm script
- rename prepare script to provision
- allow custom batch endpoint in request
- version script runs on Linux
- allow use of global node_modules with direnv
- replay uses duplicate detection docs
- replay runs in parallel with app.listen
- add cause to business error messages
- support long argument names in foreach
- no breaker on throttled functions
- remove eureka's dependency on SECURED env var
- configurable retries in the retry module
- do not cache undefined/unexisting responses
- support false values in .apprc configs
- support down-sampling of sequence ids
- check for correct node and npm versions
- removed outdated Japanese documentation
Previous release v0.0.5
v0.0.5
Abacus - Change History
The Abacus usage metering and aggregation service.
v0.0.5 - 05/25/2016
Usage metering and rating
- refactor provisioning config and account plugins
- improve flexibility of metering, rating, and pricing plans
- persist last submitted runtime usage GUID
- detect conflicting runtime usage events
- improve error reporting
- store usage processing errors in a separate DB
Usage accumulation and aggregation
- refactor time window processing using moment.js
- fixes to time window based usage accumulation
- support out of sequence time-based usage events
- remove consumers without usage from aggregated usage
- support variable usage slack window
- improve duplicate usage doc detection
Usage reporting
- improve GraphQL error reporting
- support user-defined quantities and costs in GraphQL reports
Deployment
- new Concourse build and test pipeline
- pluggable database support
- support both CouchDB and MongoDB databases
- improved pipeline configuration documentation
- improved security configuration documentation
Security
- secure /log, /healthcheck and /hystrix routes
- refactor CF bridge OAuth support
- secure CF bridge routes
- fix OAuth token refresh logic
Performance
- improve CF bridge performance
Misc
- add useful error logging
Prerequisites
- Node.js 5.10, 6.2
- Npm 3.8
- CouchDB 1.6+ compatible database or MongoDB 3.2+ database
- Cloud Foundry v226+
v0.0.5-rc.1 - 03/07/2016
Usage metering and rating
- refactor provisioning config and account plugins
- improve flexibility of metering, rating, and pricing plans
- persist last submitted runtime usage GUID
Usage accumulation and aggregation
- refactor time window processing
- fixes to time window based usage accumulation
- support out of sequence time-based usage events
- remove consumers without usage from aggregated usage
- support variable usage slack window
Usage reporting
- improve GraphQL error reporting
- support user-defined quantities and costs in GraphQL reports
Deployment
- pluggable database support
- support both CouchDB and MongoDB databases
- improved pipeline configuration documentation
- improved security configuration documentation
Security
- secure /log routes
- refactor CF bridge OAuth support
- secure CF bridge routes
Performance
- improve CF bridge performance
Misc
- add useful error logging
Prerequisites
- Node.js 0.12, 4.2, 5.6
- CouchDB 1.6+ compatible database or MongoDB 3.2+ database
- Cloud Foundry v210+
v0.0.5-rc.0 - 02/02/2016
Usage metering and rating
- Refactor plugins to use separate metering, rating and pricing plans
Misc
- Database client fixes
v0.0.4 - 12/21/2015
Usage collection
- Handle runtime usage GUID resets
Usage metering and rating
- Metering and rating configuration at the resource/plan level
- Usage rating at the resource instance level
- Remove separate rating service
- Disable BigNumber errors with more than 15 significant digits
Usage accumulation and aggregation
- Fixes to time window and slack window processing logic
- Refactor and simplify aggregation processing
- Include account id in aggregated usage
- Remove deprecated region property
- Optionally post aggregated usage to an external service
Deployment
- Upgrade to latest Node dependencies
- Improve BOSH release creation and deployment scripts
- Improve performance of deployment to CF
Monitoring
- Monitoring of Abacus services using Hystrix, Eureka and Turbine
- Config options and instrumentation to help monitor memory usage
- Fix service health reporting logic
Security
- Refactor and simplify OAuth support module
- Don't write passwords to debug log
Performance
- Improve memory usage and fix memory leaks
- Tune throttling and cache sizes
- Implement usage processing backpressure
- Minimize number of usage replays when recovering
Prerequisites
- Node.js 0.12, 4.2, 5.3
- CouchDB 1.6+ compatible database
- Cloud Foundry v210+
v0.0.3 - 11/06/2015
Usage submission
- Scoped organization ids (e.g. per deployment, region, zone etc)
- Optionally replay unprocessed usage after a restart
Usage metering and rating
- Accurate floating point calculations using BigNumber.js
Usage accumulation
- Fix remaining timing and event sequencing issues in tests
Deployment
- Several small/medium/large deployment config options
- Prototype of a BOSH release for Abacus
Documentation
- Japanese translation
Misc
- Performance optimizations, latency and memory footprint
Prerequisites
- Node.js 0.12, 4.2, 5.0
- CouchDB 1.6+ compatible database
- Cloud Foundry v210+
v0.0.2 - 10/30/2015
Usage submission
- Accept and record duplicate usage docs
- Fix issue with db partitioning in provisioning service
Usage accumulation
- Fix timing and event sequencing issues in tests
App usage metering
- Fix detection of duplicate usage docs with multiple consumers
Misc
- App health checks based on error rates
- Optional registration in Eureka for monitoring with Hystrix
- Support easier app environment configuration with .rc files
Prerequisites
- Node.js 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.2 - 10/23/2015
Usage submission
- Change consumer field type to a string
- Improve error reporting
- Store provider client id with submitted usage
Usage accumulation
- Bug fixes with usage accumulation and slack windows
- Improve reliability of duplicate usage doc detection
Usage reports
- Fix handling of undefined usage values
App usage metering
- Improvements to make test logic independent of timing
- Throttle usage submission at startup time
Security
- Pass Abacus token instead of client token to resource config service
- Add a test UAA stub service allowing all tests to run with security
- Use more consistent config variable names
Performance improvements
- Faster duplicate usage doc detection
- Reduced number of database writes per usage doc
- Fixed Node.js IO starvation issues under load
Misc
- More flexible database name configuration
- More flexible database partitioning configuration
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.1 - 10/16/2015
Usage submission
- Simpler and more consistent usage submission API
- Single usage model for runtime and service resources
- Pluggable usage validation
Usage accumulation
- Usage accumulation over month, day, hour, min, sec time windows
- Configurable accumulation functions
- Automatic calculation of time-based usage consumption
- Handling of out of sequence and delayed usage
Usage aggregation
- Usage aggregation over orgs, spaces, resources, consumers and apps
- Configurable aggregation functions
Usage rating
- Rating of aggregated usage
- Configurable pricing and rating functions
Usage reports
- Simpler and more consistent usage reporting API
- Default usage summary reports
- Configurable summary and charge calculation functions
- GraphQL usage query API
Platform integration and onboarding
- Pluggable resource provider and resource configuration onboarding
- Pluggable org collection management
Security
- Authentication using OAuth tokens
- Usage submission authorization using OAuth scopes
- Pluggable usage reporting authorization
App usage metering
- CF app usage bridge to Abacus
Documentation
- Improvements to the API doc
- FAQ with a few initial questions
Misc
- Support for usage region info
- Performance improvements
- DB error handling improvements
- Increased test coverage
- Integration and performance tests
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.1 - 07/14/2015
Initial public contribution
v0.0.4
Abacus - Change History
The Abacus usage metering and aggregation service.
v0.0.4 - 12/21/2015
Usage collection
- Handle runtime usage GUID resets
Usage metering and rating
- Metering and rating configuration at the resource/plan level
- Usage rating at the resource instance level
- Remove separate rating service
- Disable BigNumber errors with more than 15 significant digits
Usage accumulation and aggregation
- Fixes to time window and slack window processing logic
- Refactor and simplify aggregation processing
- Include account id in aggregated usage
- Remove deprecated region property
- Optionally post aggregated usage to an external service
Deployment
- Upgrade to latest Node dependencies
- Improve BOSH release creation and deployment scripts
- Improve performance of deployment to CF
Monitoring
- Monitoring of Abacus services using Hystrix, Eureka and Turbine
- Config options and instrumentation to help monitor memory usage
- Fix service health reporting logic
Security
- Refactor and simplify OAuth support module
- Don't write passwords to debug log
Performance
- Improve memory usage and fix memory leaks
- Tune throttling and cache sizes
- Implement usage processing backpressure
- Minimize number of usage replays when recovering
Prerequisites
- Node.js 0.12, 4.2, 5.3
- CouchDB 1.6+ compatible database
- Cloud Foundry v210+
v0.0.3 - 11/06/2015
Usage submission
- Scoped organization ids (e.g. per deployment, region, zone etc)
- Optionally replay unprocessed usage after a restart
Usage metering and rating
- Accurate floating point calculations using BigNumber.js
Usage accumulation
- Fix remaining timing and event sequencing issues in tests
Deployment
- Several small/medium/large deployment config options
- Prototype of a BOSH release for Abacus
Documentation
- Japanese translation
Misc
- Performance optimizations, latency and memory footprint
Prerequisites
- Node.js 0.12, 4.2, 5.0
- CouchDB 1.6+ compatible database
- Cloud Foundry v210+
v0.0.2 - 10/30/2015
Usage submission
- Accept and record duplicate usage docs
- Fix issue with db partitioning in provisioning service
Usage accumulation
- Fix timing and event sequencing issues in tests
App usage metering
- Fix detection of duplicate usage docs with multiple consumers
Misc
- App health checks based on error rates
- Optional registration in Eureka for monitoring with Hystrix
- Support easier app environment configuration with .rc files
Prerequisites
- Node.js 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.2 - 10/23/2015
Usage submission
- Change consumer field type to a string
- Improve error reporting
- Store provider client id with submitted usage
Usage accumulation
- Bug fixes with usage accumulation and slack windows
- Improve reliability of duplicate usage doc detection
Usage reports
- Fix handling of undefined usage values
App usage metering
- Improvements to make test logic independent of timing
- Throttle usage submission at startup time
Security
- Pass Abacus token instead of client token to resource config service
- Add a test UAA stub service allowing all tests to run with security
- Use more consistent config variable names
Performance improvements
- Faster duplicate usage doc detection
- Reduced number of database writes per usage doc
- Fixed Node.js IO starvation issues under load
Misc
- More flexible database name configuration
- More flexible database partitioning configuration
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.1 - 10/16/2015
Usage submission
- Simpler and more consistent usage submission API
- Single usage model for runtime and service resources
- Pluggable usage validation
Usage accumulation
- Usage accumulation over month, day, hour, min, sec time windows
- Configurable accumulation functions
- Automatic calculation of time-based usage consumption
- Handling of out of sequence and delayed usage
Usage aggregation
- Usage aggregation over orgs, spaces, resources, consumers and apps
- Configurable aggregation functions
Usage rating
- Rating of aggregated usage
- Configurable pricing and rating functions
Usage reports
- Simpler and more consistent usage reporting API
- Default usage summary reports
- Configurable summary and charge calculation functions
- GraphQL usage query API
Platform integration and onboarding
- Pluggable resource provider and resource configuration onboarding
- Pluggable org collection management
Security
- Authentication using OAuth tokens
- Usage submission authorization using OAuth scopes
- Pluggable usage reporting authorization
App usage metering
- CF app usage bridge to Abacus
Documentation
- Improvements to the API doc
- FAQ with a few initial questions
Misc
- Support for usage region info
- Performance improvements
- DB error handling improvements
- Increased test coverage
- Integration and performance tests
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.1 - 07/14/2015
Initial public contribution
v0.0.3
Abacus - Change History
The Abacus usage metering and aggregation service.
v0.0.3 - 11/06/2015
Usage submission
- Scoped organization ids (e.g. per deployment, region, zone etc)
- Optionally replay unprocessed usage after a restart
Usage metering and rating
- Accurate floating point calculations using BigNumber.js
Usage accumulation
- Fix remaining timing and event sequencing issues in tests
Deployment
- Several small/medium/large deployment config options
- Prototype of a BOSH release for Abacus
Documentation
- Japanese translation
Misc
- Performance optimizations, latency and memory footprint
Prerequisites
- Node.js 0.12, 4.2, 5.0
- CouchDB 1.6+ compatible database
- Cloud Foundry v210+
v0.0.2 - 10/30/2015
Usage submission
- Accept and record duplicate usage docs
- Fix issue with db partitioning in provisioning service
Usage accumulation
- Fix timing and event sequencing issues in tests
App usage metering
- Fix detection of duplicate usage docs with multiple consumers
Misc
- App health checks based on error rates
- Optional registration in Eureka for monitoring with Hystrix
- Support easier app environment configuration with .rc files
Prerequisites
- Node.js 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.2 - 10/23/2015
Usage submission
- Change consumer field type to a string
- Improve error reporting
- Store provider client id with submitted usage
Usage accumulation
- Bug fixes with usage accumulation and slack windows
- Improve reliability of duplicate usage doc detection
Usage reports
- Fix handling of undefined usage values
App usage metering
- Improvements to make test logic independent of timing
- Throttle usage submission at startup time
Security
- Pass Abacus token instead of client token to resource config service
- Add a test UAA stub service allowing all tests to run with security
- Use more consistent config variable names
Performance improvements
- Faster duplicate usage doc detection
- Reduced number of database writes per usage doc
- Fixed Node.js IO starvation issues under load
Misc
- More flexible database name configuration
- More flexible database partitioning configuration
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.2-rc.1 - 10/16/2015
Usage submission
- Simpler and more consistent usage submission API
- Single usage model for runtime and service resources
- Pluggable usage validation
Usage accumulation
- Usage accumulation over month, day, hour, min, sec time windows
- Configurable accumulation functions
- Automatic calculation of time-based usage consumption
- Handling of out of sequence and delayed usage
Usage aggregation
- Usage aggregation over orgs, spaces, resources, consumers and apps
- Configurable aggregation functions
Usage rating
- Rating of aggregated usage
- Configurable pricing and rating functions
Usage reports
- Simpler and more consistent usage reporting API
- Default usage summary reports
- Configurable summary and charge calculation functions
- GraphQL usage query API
Platform integration and onboarding
- Pluggable resource provider and resource configuration onboarding
- Pluggable org collection management
Security
- Authentication using OAuth tokens
- Usage submission authorization using OAuth scopes
- Pluggable usage reporting authorization
App usage metering
- CF app usage bridge to Abacus
Documentation
- Improvements to the API doc
- FAQ with a few initial questions
Misc
- Support for usage region info
- Performance improvements
- DB error handling improvements
- Increased test coverage
- Integration and performance tests
Prerequisites
- Node.js 0.10, 0.12, 4.2
- CouchDB 1.6 compatible database
- Cloud Foundry v210+
v0.0.1 - 07/14/2015
Initial public contribution