Re-reading OP’s question, I realised that OP’s issue is with the consumption and usage of resources, while mine is with the default provisioned reserved units per collection when Squidex creates the 16 collections on CosmosDB. As such they are different issues and I feel that I have hijacked the discussion, so apologies @aritchie. I shall create a new separate thread for this.
Just for the sake of testing, I tried to create the CosmosDB Squidex and SquidexContent databases manually (since CosmosDB allows me to define the RU per database on creation rather than per collection), but once I started Squidex, it threw this error:
{“logLevel”:“Error”,“message”:“Caught and ignored exception: MongoDB.Driver.MongoCommandException with message: Command update failed: Shared throughput collection should have a partition key\r\nActivityId: 0f561721-0000-0000-0000-000000000000, Microsoft.Azure.Documents.Common/2.2.0.0. thrown from timer callback GrainTimer. TimerCallbackHandler:Squidex.Domain.Apps.Entities.Rules.UsageTracking.UsageTrackerGrain->System.Threading.Tasks.Task b__4_0(System.Object)”,“eventId”:{“id”:101413},“exception”:{“type”:“MongoDB.Driver.MongoCommandException”,“message”:“Command update failed: Shared throughput collection should have a partition key\r\nActivityId: 0f561721-0000-0000-0000-000000000000, Microsoft.Azure.Documents.Common/2.2.0.0.”,“stackTrace”:" at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol1.ProcessReply(ConnectionId connectionId, ReplyMessage
1 reply)\n at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol
1 protocol, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.RetryableWriteOperationExecutor.ExecuteAsync[TResult](IRetryableWriteOperation1 operation, RetryableWriteContext context, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.BulkUnmixedWriteOperationBase
1.ExecuteBatchAsync(RetryableWriteContext context, Batch batch, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.BulkUnmixedWriteOperationBase1.ExecuteBatchesAsync(RetryableWriteContext context, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.BulkMixedWriteOperation.ExecuteBatchAsync(RetryableWriteContext context, Batch batch, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.BulkMixedWriteOperation.ExecuteAsync(IWriteBinding binding, CancellationToken cancellationToken)\n at MongoDB.Driver.OperationExecutor.ExecuteWriteOperationAsync[TResult](IWriteBinding binding, IWriteOperation
1 operation, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionImpl1.ExecuteWriteOperationAsync[TResult](IClientSessionHandle session, IWriteOperation
1 operation, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionImpl1.BulkWriteAsync(IClientSessionHandle session, IEnumerable
1 requests, BulkWriteOptions options, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionImpl1.UsingImplicitSessionAsync[TResult](Func
2 funcAsync, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionBase1.UpdateOneAsync(FilterDefinition
1 filter, UpdateDefinition1 update, UpdateOptions options, Func
3 bulkWriteAsync)\n at Squidex.Infrastructure.MongoDb.MongoExtensions.UpsertVersionedAsync[T,TKey](IMongoCollection1 collection, TKey key, Int64 oldVersion, Int64 newVersion, Func
2 updater) in /src/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoExtensions.cs:line 114\n at Squidex.Infrastructure.States.MongoSnapshotStore2.WriteAsync(TKey key, T value, Int64 oldVersion, Int64 newVersion) in /src/src/Squidex.Infrastructure.MongoDb/States/MongoSnapshotStore.cs:line 60\n at Squidex.Infrastructure.States.Persistence
2.WriteSnapshotAsync(TSnapshot state) in /src/src/Squidex.Infrastructure/States/Persistence{TSnapshot,TKey}.cs:line 135\n at Squidex.Domain.Apps.Entities.Rules.UsageTracking.UsageTrackerGrain.CheckUsagesAsync() in /src/src/Squidex.Domain.Apps.Entities/Rules/UsageTracking/UsageTrackerGrain.cs:line 107\n at Orleans.Runtime.GrainTimer.ForwardToAsyncCallback(Object state)"},“app”:{“name”:“Squidex”,“version”:“1.0.0.0”,“sessionId”:“3525e6ca-376a-4615-afd8-d6012977173e”},“timestamp”:“2019-04-17T17:09:42Z”,“category”:“Orleans.Runtime.GrainTimer”}