Skip to content
This repository has been archived by the owner on Jan 21, 2022. It is now read-only.

Releases: cloudfoundry-attic/cf-abacus

Euro 1.1.5

08 Mar 07:38
Compare
Choose a tag to compare

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

12 Feb 13:47
Compare
Choose a tag to compare

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 and price from reports
  • fixed: throttle queue is blocked after 10000 failed requests

Sampling API

  • introduced reciever and worker

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 and buildpacks manifest elements in cfpush

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 and fgrep flags to abacus-mocha

Euro 1.1.3

21 May 19:17
Compare
Choose a tag to compare

Fixed npm package versions

Euro 1.1.2

21 May 18:55
Compare
Choose a tag to compare

Usage reporting

  • missing consumer data will result in 206 status code
  • charge and summary 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

11 May 13:58
Compare
Choose a tag to compare

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 and throttle modules now export their default settings
  • abacus-moment supports moment.js duration

Previous release v1.1.0

Euro 1.1.0

11 Feb 16:07
Compare
Choose a tag to compare

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
  • 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 uses cf curl

Previous release v1.0.0

Euro - first production release

11 Feb 16:08
Compare
Choose a tag to compare
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

25 May 20:57
Compare
Choose a tag to compare

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

21 Dec 22:44
Compare
Choose a tag to compare

Abacus - Change History

The Abacus usage metering and aggregation service.


v0.0.4 - 12/21/2015

Travis CI build #632

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

07 Nov 06:01
Compare
Choose a tag to compare

Abacus - Change History

The Abacus usage metering and aggregation service.


v0.0.3 - 11/06/2015

Travis CI build #539

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