Using a9s MongoDB
This topic describes how to use a9s MongoDB.
Use a9s MongoDB with an Application
To use a9s MongoDB with an application, create a Service Instance and bind the Service Instance to your application. For more information on managing Service Instances, see Managing Service Instances with the cf CLI.
View the a9s MongoDB Service
After the service is installed, you can see the a9s-mongodb
and its service plans appear in your CF marketplace.
Run cf marketplace
to see the service listing:
$ cf marketplace
Getting services from marketplace in org test / space test as admin...
OK
service plans description
a9s-mongodb mongodb-single-small, mongodb-cluster-small, This is the anynines MongoDB 7.0 service SSPL.
mongodb-single-big, mongodb-cluster-big
Create a Service Instance
To provision a MongoDB database, run cf create-service
. For example:
cf create-service a9s-mongodb mongodb-single-small my-mongodb-service
Depending on your infrastructure and service broker utilization, it may take several minutes to create the Service Instance.
Run the cf services
command to view the creation status. This command displays a list of all your Service Instances.
To view the status of a specific Service Instance, run cf service NAME-OF-YOUR-SERVICE
.
Bind an Application to a Service Instance
After your database is created, run cf bind-service
to bind the service to your application:
cf bind-service a9s-mongodb-app my-mongodb-service
Restage or Restart Your Application
To enable your application to access the Service Instance, run cf restage
or cf restart
to restage or restart your
application.
Obtain Service Instance Access Credentials
After a Service Instance is bound to an application, the credentials of your MongoDB database are stored in the
environment variables of the application. Run cf env APP-NAME
to display the environment variables.
You can find the credentials in the VCAP_SERVICES key.
$ cf env a9s-mongodb-app
Getting env variables for app a9s-mongodb-app in org test / space test as admin...
OK
System-Provided:
{
"VCAP_SERVICES": {
"a9s-mongodb": [
{
"credentials": {
"default_database": "d22906",
"hosts": [
"EXAMPLE-HOST"
],
"password": "EXAMPLE-PASSWORD",
"uri": "EXAMPLE-URI",
"username": "EXAMPLE-USERNAME"
},
"label": "a9s-mongodb",
"name": "my-mongodb-service",
"plan": "mongodb-single-small",
"tags": [
"nosql",
"database",
"document store",
"eventual consistent"
]
}
]
}
}
...
You can use the host, username and password values to connect to your database with a MongoDB client.
Best Practices
There are some best practices for using service binding information in apps in a separate document.
Delete an a9s MongoDB Service Instance
Before deleting a Service Instance, you must backup data stored in your database. This operation cannot be undone and all the data is lost when the service is deleted.
Before you can delete a Service Instance, you must unbind it from all apps.
List Available Services
Run cf services
to list your available services.
$ cf services
Getting services in org test / space test as admin...
OK
name service plan bound apps last operation
my-mongodb-service a9s-mongodb mongodb-single-small a9s-mongodb-app create succeeded
This example shows that my-mongodb-service
is bound to the a9s-mongodb-app
application.
Unbind a Service Instance
Run cf unbind-service
to unbind the service from your application.
cf unbind-service a9s-mongodb-app my-mongodb-service
Delete a Service Instance
After unbinding the service, it is no longer bound to an application. Run cf delete-service
to delete the service:
cf delete-service my-mongodb-service
It may take several minutes to delete the service. Deleting a service deprovisions the corresponding infrastructure resources.
Run the cf services
command to view the deletion status.
Upgrade the Service Instance to another Service Plan
Once created, you can upgrade your Service Instance to another, larger service plan. A larger service plan provides more CPU, RAM and storage. For more information, see the Update a Service Instance of the Managing Service Instances with the cf CLI topic.
cf update-service my-mongodb-service -p a-bigger-plan
Add a Graphite Endpoint
Streaming of logs and metrics might not be available for your plan! If unsure, please check your plan description.
If you want to monitor your service with Graphite, you can set the custom parameter graphite
. It expects the host and
port where the Graphite metrics should be sent to.
For example, in order to send Graphite metrics to an endpoint yourspace.your-graphite-endpoint.com:12345
, you can use
the following command:
cf update-service my-instance -c '{ "graphite": "yourspace.your-graphite-endpoint.com:12345" }'
The endpoint would then receive metrics in the format:
<service_guid>.<service_type>.<host>.<metric> <metric_value> <metric_timestamp>
Metrics Frequency
By default, metrics will be emitted every 10
seconds. You can change the interval via the custom parameter
metrics_frequency
.
For example, in order to send Graphite metrics to an endpoint every minute, you would set the custom parameter
metrics_frequency
to 60
using the following command:
cf update-service my-instance -c '{ "metrics_frequency": 60 }'
For replica set service instances, we suggest using smaller values for metrics_frequency
to obtain finer-grained
information regarding replication lag. Note that using very small values can generate a huge amount of
metrics data.
Metrics Prefix
Depending on your graphite provider, you might need to prefix the metrics with a certain value, like an API key for
example. In this case you can leverage the custom parameter metrics_prefix
.
cf update-service my-instance -c '{ "metrics_prefix": "my-api-key-for-a-certain-provider" }'
The resulting metric path would have the format:
<metrics_prefix>.<service_guid>.<service_type>.<host>.<metric>
Metric Groups
Group Name | Description |
---|---|
memory | Memory Information |
asserts | Error Handling Information |
network | Network Information |
replicas | Replication Information |
replica sets | Node-specific replication information |
commands | Commands information |
errors | Errors information |
connections | Connection information |
locks | Concurrency Information |
opcounters | Database operations counters |
oplatencies | Database operation latencies |
The metric groups listed above are available both in a9s MongoDB 5.0 and a9s MongoDB 7.0. However, small differences exist between the two versions. We highlight those differences when applicable.
Metric Group Patterns
Each metric group has a set of patterns that describe the metrics contained in each group.
Memory
A document that reports on the system architecture of the mongod
and current memory use.
*.*.mongodb.*.*.*.*.mem.bits
*.*.mongodb.*.*.*.*.mem.resident
*.*.mongodb.*.*.*.*.mem.supported
*.*.mongodb.*.*.*.*.mem.virtual
Asserts
A document that reports on the number of assertions raised since the MongoDB process started. While assert errors are typically uncommon, if there are non-zero values for the asserts, you should examine the log file for more information. In many cases, these errors are trivial, but are worth investigating.
*.*.mongodb.*.*.*.*.asserts.msg
*.*.mongodb.*.*.*.*.asserts.regular
*.*.mongodb.*.*.*.*.asserts.rollovers
*.*.mongodb.*.*.*.*.asserts.user
*.*.mongodb.*.*.*.*.asserts.warning
*.*.mongodb.*.*.*.*.asserts.tripwire
Network
A document that reports data on MongoDB's network use. These statistics measure ingress connections only, specifically
the traffic seen by the mongod
or mongos
over network connections initiated by clients or other mongod
or
mongos
instances. Traffic from network connections initiated by this instance (i.e. egress connections) is not
measured in these statistics.
*.*.mongodb.*.*.*.*.network.serviceExecutors.passthrough.threadsRunning
*.*.mongodb.*.*.*.*.network.serviceExecutors.passthrough.clientsRunning
*.*.mongodb.*.*.*.*.network.serviceExecutors.passthrough.clientsInTotal
*.*.mongodb.*.*.*.*.network.serviceExecutors.passthrough.clientsWaitingForData
*.*.mongodb.*.*.*.*.network.serviceExecutors.fixed.threadsRunning
*.*.mongodb.*.*.*.*.network.serviceExecutors.fixed.clientsRunning
*.*.mongodb.*.*.*.*.network.serviceExecutors.fixed.clientsInTotal
*.*.mongodb.*.*.*.*.network.serviceExecutors.fixed.clientsWaitingForData
*.*.mongodb.*.*.*.*.network.numSlowDNSOperations
*.*.mongodb.*.*.*.*.network.compression.snappy.compressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.snappy.compressor.bytesOut
*.*.mongodb.*.*.*.*.network.compression.snappy.decompressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.snappy.decompressor.bytesOut
*.*.mongodb.*.*.*.*.network.compression.zstd.compressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.zstd.compressor.bytesOut
*.*.mongodb.*.*.*.*.network.compression.zstd.decompressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.zstd.decompressor.bytesOut
*.*.mongodb.*.*.*.*.network.compression.zlib.compressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.zlib.compressor.bytesOut
*.*.mongodb.*.*.*.*.network.compression.zlib.decompressor.bytesIn
*.*.mongodb.*.*.*.*.network.compression.zlib.decompressor.bytesOut
*.*.mongodb.*.*.*.*.network.tcpFastOpen.clientSupported
*.*.mongodb.*.*.*.*.network.tcpFastOpen.serverSupported
*.*.mongodb.*.*.*.*.network.tcpFastOpen.accepted
*.*.mongodb.*.*.*.*.network.tcpFastOpen.kernelSetting
*.*.mongodb.*.*.*.*.network.numSlowSSLOperations
*.*.mongodb.*.*.*.*.network.physicalBytesIn
*.*.mongodb.*.*.*.*.network.physicalBytesOut
*.*.mongodb.*.*.*.*.network.bytesIn
*.*.mongodb.*.*.*.*.network.bytesOut
*.*.mongodb.*.*.*.*.network.numRequests
In addition, in a9s MongoDB 7.0 we have the following network metrics from the metrics
group:
*.*.mongodb.*.*.*.*.metrics.network.totalTimeForEgressConnectionAcquiredToWireMicros
*.*.mongodb.*.*.*.*.metrics.network.totalTimeToFirstNonAuthCommandMillis
*.*.mongodb.*.*.*.*.metrics.network.totalIngressTLSConnections
*.*.mongodb.*.*.*.*.metrics.network.totalEgressConnectionEstablishmentTimeMillis
*.*.mongodb.*.*.*.*.metrics.network.totalIngressTLSHandshakeTimeMillis
Replicas
A document that reports on the replica set configuration.
*.*.mongodb.*.*.*.*.metrics.repl.buffer.sizeBytes
*.*.mongodb.*.*.*.*.metrics.repl.buffer.count
*.*.mongodb.*.*.*.*.metrics.repl.buffer.maxSizeBytes
*.*.mongodb.*.*.*.*.metrics.repl.syncSource.numTimesChoseDifferent
*.*.mongodb.*.*.*.*.metrics.repl.syncSource.numSelections
*.*.mongodb.*.*.*.*.metrics.repl.syncSource.numTimesChoseSame
*.*.mongodb.*.*.*.*.metrics.repl.syncSource.numTimesCouldNotFind
*.*.mongodb.*.*.*.*.metrics.repl.syncSource.numSyncSourceChangesDueToSignificantlyCloserNode
*.*.mongodb.*.*.*.*.metrics.repl.apply.ops
*.*.mongodb.*.*.*.*.metrics.repl.apply.batchSize
*.*.mongodb.*.*.*.*.metrics.repl.apply.attemptsToBecomeSecondary
*.*.mongodb.*.*.*.*.metrics.repl.apply.batches.num
*.*.mongodb.*.*.*.*.metrics.repl.apply.batches.totalMillis
*.*.mongodb.*.*.*.*.metrics.repl.executor.shuttingDown
*.*.mongodb.*.*.*.*.metrics.repl.executor.pool.inProgressCount
*.*.mongodb.*.*.*.*.metrics.repl.executor.queues.networkInProgress
*.*.mongodb.*.*.*.*.metrics.repl.executor.queues.sleepers
*.*.mongodb.*.*.*.*.metrics.repl.executor.unsignaledEvents
*.*.mongodb.*.*.*.*.metrics.repl.initialSync.completed
*.*.mongodb.*.*.*.*.metrics.repl.initialSync.failedAttempts
*.*.mongodb.*.*.*.*.metrics.repl.initialSync.failures
*.*.mongodb.*.*.*.*.metrics.repl.reconfig.numAutoReconfigsForRemovalOfNewlyAddedFields
*.*.mongodb.*.*.*.*.metrics.repl.stateTransition.userOperationsRunning
*.*.mongodb.*.*.*.*.metrics.repl.stateTransition.lastStateTransition
*.*.mongodb.*.*.*.*.metrics.repl.stateTransition.userOperationsKilled
*.*.mongodb.*.*.*.*.metrics.repl.network.notPrimaryLegacyUnacknowledgedWrites
*.*.mongodb.*.*.*.*.metrics.repl.network.replSetUpdatePosition.num
*.*.mongodb.*.*.*.*.metrics.repl.network.oplogGetMoresProcessed.num
*.*.mongodb.*.*.*.*.metrics.repl.network.oplogGetMoresProcessed.totalMillis
*.*.mongodb.*.*.*.*.metrics.repl.network.getmores.num
*.*.mongodb.*.*.*.*.metrics.repl.network.getmores.totalMillis
*.*.mongodb.*.*.*.*.metrics.repl.network.getmores.numEmptyBatches
*.*.mongodb.*.*.*.*.metrics.repl.network.ops
*.*.mongodb.*.*.*.*.metrics.repl.network.readersCreated
*.*.mongodb.*.*.*.*.metrics.repl.network.bytes
*.*.mongodb.*.*.*.*.metrics.repl.network.notPrimaryUnacknowledgedWrites
For the *.*.mongodb.*.*.*.*.metrics.repl.stateTransition.lastStateTransition
metric we use the following encoding:
MongoDB Value | a9s Value |
---|---|
stepUp | 1 |
stepDown | 2 |
rollback | 3 |
"" | 0 |
Replica Sets
In addition to these global replication metrics, we also provide metrics for each node in a cluster. The format for these metrics is slightly different as it accounts for the names of each specific node and the names of the replica-sets, as assigned by MongoDB. Note that these metrics are made available only when when the current host is part of a replica set.
The overall format is
<service_guid>.mongodb.<host>.<node>.<space>.<domain>.replSet.<replica_set>.<target_node>.<metric> <metric_value> <metric_timestamp>
As an example, metrics could look like this:
3a86882d-c7eb-4948-8231-85daa01497cf.mongodb.gad796fc-mongodb-2.node.dc1.dsf2-a9ssvc.replSet.rs0.2.gad796fc-mongodb-2_node_dc1_dsf2_a9ssvc:27017.health 1.0 1709920512
The <node>
part indicates the node in which the metrics are collected. The <target_node>
indicates the node for which
the metric is collected. This distinction is important when trying to interpret the metric names because in specific
nodes we can only obtain certain metrics w.r.t. other nodes.
The metrics listed below are obtained in each node, for each of the nodes in a replica set.
*.*.mongodb.*.*.*.*.replSet.<set>.date
*.*.mongodb.*.*.*.*.replSet.<set>.primary
*.*.mongodb.*.*.*.*.replSet.<set>.secondary
*.*.mongodb.*.*.*.*.replSet.<set>.myState
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.health
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.state
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.uptime
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.optime
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.electionTime
The first metrics in the list above are not followed by any <target_node> value, because these provide information about
the current node only. Specifically, the primary
and secondary
metrics take boolean values to indicate whether the
current node has a Primary or Secondary status in the replica set.
In case the node has neither status, the myState
metric is informative. The values of this latter metric
correspond to Mongo's Replica States.
Below, we list the collected metrics. Note that some of them behave differently depending on the role of the node (i.e., Primary or Secondary) in which the collection takes place.
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.lag
*.*.mongodb.*.*.*.*.replSet.<set>.<target_node>.*.*.*.*.seconds_since_last_contact
The lag
metric denotes the replication lag between the current node and the <target_node>
. This metric is reported for
all other nodes in the replica set if the current node is a Primary. However, if the current node is a Secondary, it
will report this metric only for itself in relation to the other nodes in the set. Note that some caveats may apply for
the lag
metric. In particular, if there is a partition in the cluster, the nodes might not be able to communicate
with each other to the point that they are not able to infer the replication lag.
From a Primary's perspective, the lag will be reported as -1
for each node that is not reachable/healthy.
From a Secondary's perspective, the lag that is reported will be -1
only if this node is _isolated_
, i.e. none of the
other nodes are reachable/healthy. If any of the other nodes is reachable, the lag will be calculated based on the state
of the current node and the other healthy node(s).
Similarly, the seconds_since_last_contact
is reported for all other nodes if the current node is a Primary. This is
also the case if the current node is a Secondary. In cases of partitions, the value of this metric will keep increasing.
Note that our definition of healthy
coincides with a state
value of 1 (primary) or 2 (secondary). If the nodes enter
any other states they are in a non-healthy state like recovering or doing startup, for more information see
Replica States.
Commands
A document that reports on the use of database commands. The fields in metrics.commands
are the names of database
commands. For each command, the serverStatus
reports the total number of executions and the number of failed
executions.
*.*.mongodb.*.*.*.*.metrics.commands.'UNKNOWN'
*.*.mongodb.*.*.*.*.metrics.commands.listCommands.total
*.*.mongodb.*.*.*.*.metrics.commands.listCommands.failed
*.*.mongodb.*.*.*.*.metrics.commands.filemd5.total
*.*.mongodb.*.*.*.*.metrics.commands.filemd5.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropConnections.total
*.*.mongodb.*.*.*.*.metrics.commands.dropConnections.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetRBID.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetRBID.failed
*.*.mongodb.*.*.*.*.metrics.commands.drop.total
*.*.mongodb.*.*.*.*.metrics.commands.drop.failed
*.*.mongodb.*.*.*.*.metrics.commands.validate.total
*.*.mongodb.*.*.*.*.metrics.commands.validate.failed
*.*.mongodb.*.*.*.*.metrics.commands.fsyncUnlock.total
*.*.mongodb.*.*.*.*.metrics.commands.fsyncUnlock.failed
*.*.mongodb.*.*.*.*.metrics.commands.revokePrivilegesFromRole.total
*.*.mongodb.*.*.*.*.metrics.commands.revokePrivilegesFromRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.mapReduce.total
*.*.mongodb.*.*.*.*.metrics.commands.mapReduce.failed
*.*.mongodb.*.*.*.*.metrics.commands.startRecordingTraffic.total
*.*.mongodb.*.*.*.*.metrics.commands.startRecordingTraffic.failed
*.*.mongodb.*.*.*.*.metrics.commands.fsync.total
*.*.mongodb.*.*.*.*.metrics.commands.fsync.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetRequestVotes.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetRequestVotes.failed
*.*.mongodb.*.*.*.*.metrics.commands.grantRolesToRole.total
*.*.mongodb.*.*.*.*.metrics.commands.grantRolesToRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.revokeRolesFromUser.total
*.*.mongodb.*.*.*.*.metrics.commands.revokeRolesFromUser.failed
*.*.mongodb.*.*.*.*.metrics.commands.donorStartMigration.total
*.*.mongodb.*.*.*.*.metrics.commands.donorStartMigration.failed
*.*.mongodb.*.*.*.*.metrics.commands.ping.total
*.*.mongodb.*.*.*.*.metrics.commands.ping.failed
*.*.mongodb.*.*.*.*.metrics.commands.convertToCapped.total
*.*.mongodb.*.*.*.*.metrics.commands.convertToCapped.failed
*.*.mongodb.*.*.*.*.metrics.commands.validateDBMetadata.total
*.*.mongodb.*.*.*.*.metrics.commands.validateDBMetadata.failed
*.*.mongodb.*.*.*.*.metrics.commands.commitTransaction.total
*.*.mongodb.*.*.*.*.metrics.commands.commitTransaction.failed
*.*.mongodb.*.*.*.*.metrics.commands.currentOp.total
*.*.mongodb.*.*.*.*.metrics.commands.currentOp.failed
*.*.mongodb.*.*.*.*.metrics.commands.setProfilingFilterGlobally.total
*.*.mongodb.*.*.*.*.metrics.commands.setProfilingFilterGlobally.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetFreeze.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetFreeze.failed
*.*.mongodb.*.*.*.*.metrics.commands.moveChunk.total
*.*.mongodb.*.*.*.*.metrics.commands.moveChunk.failed
*.*.mongodb.*.*.*.*.metrics.commands.saslContinue.total
*.*.mongodb.*.*.*.*.metrics.commands.saslContinue.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetInitiate.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetInitiate.failed
*.*.mongodb.*.*.*.*.metrics.commands.dbHash.total
*.*.mongodb.*.*.*.*.metrics.commands.dbHash.failed
*.*.mongodb.*.*.*.*.metrics.commands.connPoolStats.total
*.*.mongodb.*.*.*.*.metrics.commands.connPoolStats.failed
*.*.mongodb.*.*.*.*.metrics.commands.create.failed
*.*.mongodb.*.*.*.*.metrics.commands.create.total
*.*.mongodb.*.*.*.*.metrics.commands.create.validator.failed
*.*.mongodb.*.*.*.*.metrics.commands.create.validator.total
*.*.mongodb.*.*.*.*.metrics.commands.create.validator.jsonSchema 0
*.*.mongodb.*.*.*.*.metrics.commands.coordinateCommitTransaction.total
*.*.mongodb.*.*.*.*.metrics.commands.coordinateCommitTransaction.failed
*.*.mongodb.*.*.*.*.metrics.commands.buildInfo.total
*.*.mongodb.*.*.*.*.metrics.commands.buildInfo.failed
*.*.mongodb.*.*.*.*.metrics.commands.authenticate.total
*.*.mongodb.*.*.*.*.metrics.commands.authenticate.failed
*.*.mongodb.*.*.*.*.metrics.commands.killOp.total
*.*.mongodb.*.*.*.*.metrics.commands.killOp.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropAllRolesFromDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands.dropAllRolesFromDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands.flushRouterConfig.total
*.*.mongodb.*.*.*.*.metrics.commands.flushRouterConfig.failed
*.*.mongodb.*.*.*.*.metrics.commands.getLastError.total
*.*.mongodb.*.*.*.*.metrics.commands.getLastError.failed
*.*.mongodb.*.*.*.*.metrics.commands.invalidateUserCache.total
*.*.mongodb.*.*.*.*.metrics.commands.invalidateUserCache.failed
*.*.mongodb.*.*.*.*.metrics.commands.appendOplogNote.total
*.*.mongodb.*.*.*.*.metrics.commands.appendOplogNote.failed
*.*.mongodb.*.*.*.*.metrics.commands.getDatabaseVersion.total
*.*.mongodb.*.*.*.*.metrics.commands.getDatabaseVersion.failed
*.*.mongodb.*.*.*.*.metrics.commands.getShardVersion.total
*.*.mongodb.*.*.*.*.metrics.commands.getShardVersion.failed
*.*.mongodb.*.*.*.*.metrics.commands.getDiagnosticData.total
*.*.mongodb.*.*.*.*.metrics.commands.getDiagnosticData.failed
*.*.mongodb.*.*.*.*.metrics.commands.getShardMap.total
*.*.mongodb.*.*.*.*.metrics.commands.getShardMap.failed
*.*.mongodb.*.*.*.*.metrics.commands.prepareTransaction.total
*.*.mongodb.*.*.*.*.metrics.commands.prepareTransaction.failed
*.*.mongodb.*.*.*.*.metrics.commands.checkShardingIndex.total
*.*.mongodb.*.*.*.*.metrics.commands.checkShardingIndex.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetUpdatePosition.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetUpdatePosition.failed
*.*.mongodb.*.*.*.*.metrics.commands.hello.total
*.*.mongodb.*.*.*.*.metrics.commands.hello.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetSyncFrom.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetSyncFrom.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetResizeOplog.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetResizeOplog.failed
*.*.mongodb.*.*.*.*.metrics.commands.recipientSyncData.total
*.*.mongodb.*.*.*.*.metrics.commands.recipientSyncData.failed
*.*.mongodb.*.*.*.*.metrics.commands.getnonce.total
*.*.mongodb.*.*.*.*.metrics.commands.getnonce.failed
*.*.mongodb.*.*.*.*.metrics.commands.startSession.total
*.*.mongodb.*.*.*.*.metrics.commands.startSession.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropAllUsersFromDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands.dropAllUsersFromDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands.listCollections.total
*.*.mongodb.*.*.*.*.metrics.commands.listCollections.failed
*.*.mongodb.*.*.*.*.metrics.commands.delete.total
*.*.mongodb.*.*.*.*.metrics.commands.delete.failed
*.*.mongodb.*.*.*.*.metrics.commands.killCursors.total
*.*.mongodb.*.*.*.*.metrics.commands.killCursors.failed
*.*.mongodb.*.*.*.*.metrics.commands.planCacheClearFilters.total
*.*.mongodb.*.*.*.*.metrics.commands.planCacheClearFilters.failed
*.*.mongodb.*.*.*.*.metrics.commands.dataSize.total
*.*.mongodb.*.*.*.*.metrics.commands.dataSize.failed
*.*.mongodb.*.*.*.*.metrics.commands.usersInfo.total
*.*.mongodb.*.*.*.*.metrics.commands.usersInfo.failed
*.*.mongodb.*.*.*.*.metrics.commands.endSessions.total
*.*.mongodb.*.*.*.*.metrics.commands.endSessions.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands.dropDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands.top.total
*.*.mongodb.*.*.*.*.metrics.commands.top.failed
*.*.mongodb.*.*.*.*.metrics.commands.killSessions.total
*.*.mongodb.*.*.*.*.metrics.commands.killSessions.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetReconfig.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetReconfig.failed
*.*.mongodb.*.*.*.*.metrics.commands.voteCommitIndexBuild.total
*.*.mongodb.*.*.*.*.metrics.commands.voteCommitIndexBuild.failed
*.*.mongodb.*.*.*.*.metrics.commands.getDefaultRWConcern.total
*.*.mongodb.*.*.*.*.metrics.commands.getDefaultRWConcern.failed
*.*.mongodb.*.*.*.*.metrics.commands.cleanupOrphaned.total
*.*.mongodb.*.*.*.*.metrics.commands.cleanupOrphaned.failed
*.*.mongodb.*.*.*.*.metrics.commands.driverOIDTest.total
*.*.mongodb.*.*.*.*.metrics.commands.driverOIDTest.failed
*.*.mongodb.*.*.*.*.metrics.commands.logout.total
*.*.mongodb.*.*.*.*.metrics.commands.logout.failed
*.*.mongodb.*.*.*.*.metrics.commands.shardingState.total
*.*.mongodb.*.*.*.*.metrics.commands.shardingState.failed
*.*.mongodb.*.*.*.*.metrics.commands.connPoolSync.total
*.*.mongodb.*.*.*.*.metrics.commands.connPoolSync.failed
*.*.mongodb.*.*.*.*.metrics.commands.hostInfo.total
*.*.mongodb.*.*.*.*.metrics.commands.hostInfo.failed
*.*.mongodb.*.*.*.*.metrics.commands.splitVector.total
*.*.mongodb.*.*.*.*.metrics.commands.splitVector.failed
*.*.mongodb.*.*.*.*.metrics.commands.availableQueryOptions.total
*.*.mongodb.*.*.*.*.metrics.commands.availableQueryOptions.failed
*.*.mongodb.*.*.*.*.metrics.commands.waitForFailPoint.total
*.*.mongodb.*.*.*.*.metrics.commands.waitForFailPoint.failed
*.*.mongodb.*.*.*.*.metrics.commands.abortTransaction.total
*.*.mongodb.*.*.*.*.metrics.commands.abortTransaction.failed
*.*.mongodb.*.*.*.*.metrics.commands.count.total
*.*.mongodb.*.*.*.*.metrics.commands.count.failed
*.*.mongodb.*.*.*.*.metrics.commands.killAllSessionsByPattern.total
*.*.mongodb.*.*.*.*.metrics.commands.killAllSessionsByPattern.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetConfig.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetConfig.failed
*.*.mongodb.*.*.*.*.metrics.commands.collMod.failed
*.*.mongodb.*.*.*.*.metrics.commands.collMod.total
*.*.mongodb.*.*.*.*.metrics.commands.collMod.validator.failed
*.*.mongodb.*.*.*.*.metrics.commands.collMod.validator.total
*.*.mongodb.*.*.*.*.metrics.commands.collMod.validator.jsonSchema 0
*.*.mongodb.*.*.*.*.metrics.commands.rotateCertificates.total
*.*.mongodb.*.*.*.*.metrics.commands.rotateCertificates.failed
*.*.mongodb.*.*.*.*.metrics.commands.createRole.total
*.*.mongodb.*.*.*.*.metrics.commands.createRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.features.total
*.*.mongodb.*.*.*.*.metrics.commands.features.failed
*.*.mongodb.*.*.*.*.metrics.commands.recipientForgetMigration.total
*.*.mongodb.*.*.*.*.metrics.commands.recipientForgetMigration.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepDownWithForce.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepDownWithForce.failed
*.*.mongodb.*.*.*.*.metrics.commands.mergeChunks.total
*.*.mongodb.*.*.*.*.metrics.commands.mergeChunks.failed
*.*.mongodb.*.*.*.*.metrics.commands.whatsmyuri.total
*.*.mongodb.*.*.*.*.metrics.commands.whatsmyuri.failed
*.*.mongodb.*.*.*.*.metrics.commands.lockInfo.total
*.*.mongodb.*.*.*.*.metrics.commands.lockInfo.failed
*.*.mongodb.*.*.*.*.metrics.commands.setIndexCommitQuorum.total
*.*.mongodb.*.*.*.*.metrics.commands.setIndexCommitQuorum.failed
*.*.mongodb.*.*.*.*.metrics.commands.setParameter.total
*.*.mongodb.*.*.*.*.metrics.commands.setParameter.failed
*.*.mongodb.*.*.*.*.metrics.commands.isMaster.total
*.*.mongodb.*.*.*.*.metrics.commands.isMaster.failed
*.*.mongodb.*.*.*.*.metrics.commands.donorAbortMigration.total
*.*.mongodb.*.*.*.*.metrics.commands.donorAbortMigration.failed
*.*.mongodb.*.*.*.*.metrics.commands.autoSplitVector.total
*.*.mongodb.*.*.*.*.metrics.commands.autoSplitVector.failed
*.*.mongodb.*.*.*.*.metrics.commands.getParameter.total
*.*.mongodb.*.*.*.*.metrics.commands.getParameter.failed
*.*.mongodb.*.*.*.*.metrics.commands.dbCheck.total
*.*.mongodb.*.*.*.*.metrics.commands.dbCheck.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepUp.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepUp.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepDown.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetStepDown.failed
*.*.mongodb.*.*.*.*.metrics.commands.insert.total
*.*.mongodb.*.*.*.*.metrics.commands.insert.failed
*.*.mongodb.*.*.*.*.metrics.commands.update.arrayFilters
*.*.mongodb.*.*.*.*.metrics.commands.update.pipeline
*.*.mongodb.*.*.*.*.metrics.commands.update.failed
*.*.mongodb.*.*.*.*.metrics.commands.update.total
*.*.mongodb.*.*.*.*.metrics.commands.grantRolesToUser.total
*.*.mongodb.*.*.*.*.metrics.commands.grantRolesToUser.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropRole.total
*.*.mongodb.*.*.*.*.metrics.commands.dropRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.applyOps.total
*.*.mongodb.*.*.*.*.metrics.commands.applyOps.failed
*.*.mongodb.*.*.*.*.metrics.commands.explain.total
*.*.mongodb.*.*.*.*.metrics.commands.explain.failed
*.*.mongodb.*.*.*.*.metrics.commands.splitChunk.total
*.*.mongodb.*.*.*.*.metrics.commands.splitChunk.failed
*.*.mongodb.*.*.*.*.metrics.commands.createUser.total
*.*.mongodb.*.*.*.*.metrics.commands.createUser.failed
*.*.mongodb.*.*.*.*.metrics.commands.rolesInfo.total
*.*.mongodb.*.*.*.*.metrics.commands.rolesInfo.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetAbortPrimaryCatchUp.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetAbortPrimaryCatchUp.failed
*.*.mongodb.*.*.*.*.metrics.commands.internalRenameIfOptionsAndIndexesMatch.total
*.*.mongodb.*.*.*.*.metrics.commands.internalRenameIfOptionsAndIndexesMatch.failed
*.*.mongodb.*.*.*.*.metrics.commands.planCacheListFilters.total
*.*.mongodb.*.*.*.*.metrics.commands.planCacheListFilters.failed
*.*.mongodb.*.*.*.*.metrics.commands.shutdown.total
*.*.mongodb.*.*.*.*.metrics.commands.shutdown.failed
*.*.mongodb.*.*.*.*.metrics.commands.getCmdLineOpts.total
*.*.mongodb.*.*.*.*.metrics.commands.getCmdLineOpts.failed
*.*.mongodb.*.*.*.*.metrics.commands.cloneCollectionAsCapped.total
*.*.mongodb.*.*.*.*.metrics.commands.cloneCollectionAsCapped.failed
*.*.mongodb.*.*.*.*.metrics.commands.listDatabases.total
*.*.mongodb.*.*.*.*.metrics.commands.listDatabases.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetHeartbeat.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetHeartbeat.failed
*.*.mongodb.*.*.*.*.metrics.commands.setShardVersion.total
*.*.mongodb.*.*.*.*.metrics.commands.setShardVersion.failed
*.*.mongodb.*.*.*.*.metrics.commands.setFeatureCompatibilityVersion.total
*.*.mongodb.*.*.*.*.metrics.commands.setFeatureCompatibilityVersion.failed
*.*.mongodb.*.*.*.*.metrics.commands.connectionStatus.total
*.*.mongodb.*.*.*.*.metrics.commands.connectionStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands.collStats.total
*.*.mongodb.*.*.*.*.metrics.commands.collStats.failed
*.*.mongodb.*.*.*.*.metrics.commands.serverStatus.total
*.*.mongodb.*.*.*.*.metrics.commands.serverStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropUser.total
*.*.mongodb.*.*.*.*.metrics.commands.dropUser.failed
*.*.mongodb.*.*.*.*.metrics.commands.getLog.total
*.*.mongodb.*.*.*.*.metrics.commands.getLog.failed
*.*.mongodb.*.*.*.*.metrics.commands.planCacheSetFilter.total
*.*.mongodb.*.*.*.*.metrics.commands.planCacheSetFilter.failed
*.*.mongodb.*.*.*.*.metrics.commands.aggregate.failed
*.*.mongodb.*.*.*.*.metrics.commands.aggregate.total
*.*.mongodb.*.*.*.*.metrics.commands.aggregate.allowDiskUseTrue 0
*.*.mongodb.*.*.*.*.metrics.commands.compact.total
*.*.mongodb.*.*.*.*.metrics.commands.compact.failed
*.*.mongodb.*.*.*.*.metrics.commands.reIndex.total
*.*.mongodb.*.*.*.*.metrics.commands.reIndex.failed
*.*.mongodb.*.*.*.*.metrics.commands.dbStats.total
*.*.mongodb.*.*.*.*.metrics.commands.dbStats.failed
*.*.mongodb.*.*.*.*.metrics.commands.saslStart.total
*.*.mongodb.*.*.*.*.metrics.commands.saslStart.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetStatus.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetGetStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands.revokeRolesFromRole.total
*.*.mongodb.*.*.*.*.metrics.commands.revokeRolesFromRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.stopRecordingTraffic.total
*.*.mongodb.*.*.*.*.metrics.commands.stopRecordingTraffic.failed
*.*.mongodb.*.*.*.*.metrics.commands.distinct.total
*.*.mongodb.*.*.*.*.metrics.commands.distinct.failed
*.*.mongodb.*.*.*.*.metrics.commands.findAndModify.arrayFilters
*.*.mongodb.*.*.*.*.metrics.commands.findAndModify.pipeline
*.*.mongodb.*.*.*.*.metrics.commands.findAndModify.failed
*.*.mongodb.*.*.*.*.metrics.commands.findAndModify.total
*.*.mongodb.*.*.*.*.metrics.commands.find.total
*.*.mongodb.*.*.*.*.metrics.commands.find.failed
*.*.mongodb.*.*.*.*.metrics.commands.grantPrivilegesToRole.total
*.*.mongodb.*.*.*.*.metrics.commands.grantPrivilegesToRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.listIndexes.total
*.*.mongodb.*.*.*.*.metrics.commands.listIndexes.failed
*.*.mongodb.*.*.*.*.metrics.commands.setDefaultRWConcern.total
*.*.mongodb.*.*.*.*.metrics.commands.setDefaultRWConcern.failed
*.*.mongodb.*.*.*.*.metrics.commands.getMore.total
*.*.mongodb.*.*.*.*.metrics.commands.getMore.failed
*.*.mongodb.*.*.*.*.metrics.commands.updateUser.total
*.*.mongodb.*.*.*.*.metrics.commands.updateUser.failed
*.*.mongodb.*.*.*.*.metrics.commands.profile.total
*.*.mongodb.*.*.*.*.metrics.commands.profile.failed
*.*.mongodb.*.*.*.*.metrics.commands.createIndexes.total
*.*.mongodb.*.*.*.*.metrics.commands.createIndexes.failed
*.*.mongodb.*.*.*.*.metrics.commands.replSetMaintenance.total
*.*.mongodb.*.*.*.*.metrics.commands.replSetMaintenance.failed
*.*.mongodb.*.*.*.*.metrics.commands.dropIndexes.total
*.*.mongodb.*.*.*.*.metrics.commands.dropIndexes.failed
*.*.mongodb.*.*.*.*.metrics.commands.donorForgetMigration.total
*.*.mongodb.*.*.*.*.metrics.commands.donorForgetMigration.failed
*.*.mongodb.*.*.*.*.metrics.commands.killAllSessions.total
*.*.mongodb.*.*.*.*.metrics.commands.killAllSessions.failed
*.*.mongodb.*.*.*.*.metrics.commands.refreshSessions.total
*.*.mongodb.*.*.*.*.metrics.commands.refreshSessions.failed
*.*.mongodb.*.*.*.*.metrics.commands.logRotate.total
*.*.mongodb.*.*.*.*.metrics.commands.logRotate.failed
*.*.mongodb.*.*.*.*.metrics.commands.updateRole.total
*.*.mongodb.*.*.*.*.metrics.commands.updateRole.failed
*.*.mongodb.*.*.*.*.metrics.commands.renameCollection.total
*.*.mongodb.*.*.*.*.metrics.commands.renameCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands.planCacheClear.total
*.*.mongodb.*.*.*.*.metrics.commands.planCacheClear.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCleanupReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCleanupReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkStart.total
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkStart.failed
*.*.mongodb.*.*.*.*.metrics.commands._isSelf.total
*.*.mongodb.*.*.*.*.metrics.commands._isSelf.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkAbort.total
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkAbort.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCloneCatalogData.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCloneCatalogData.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveShard.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveShard.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerCollectionStatus.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerCollectionStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands._transferMods.total
*.*.mongodb.*.*.*.*.metrics.commands._transferMods.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollectionIfUUIDNotMatching.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollectionIfUUIDNotMatching.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollectionParticipantUnblock.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollectionParticipantUnblock.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrReshardingOperationTime.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrReshardingOperationTime.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCommitReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCommitReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._flushRoutingTableCacheUpdates.total
*.*.mongodb.*.*.*.*.metrics.commands._flushRoutingTableCacheUpdates.failed
*.*.mongodb.*.*.*.*.metrics.commands._getNextSessionMods.total
*.*.mongodb.*.*.*.*.metrics.commands._getNextSessionMods.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAddShard.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAddShard.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMigration.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMigration.failed
*.*.mongodb.*.*.*.*.metrics.commands._cloneCollectionOptionsFromPrimaryShard.total
*.*.mongodb.*.*.*.*.metrics.commands._cloneCollectionOptionsFromPrimaryShard.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitMovePrimary.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitMovePrimary.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands._mergeAuthzCollections.total
*.*.mongodb.*.*.*.*.metrics.commands._mergeAuthzCollections.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCleanupReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCleanupReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._flushDatabaseCacheUpdates.total
*.*.mongodb.*.*.*.*.metrics.commands._flushDatabaseCacheUpdates.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollectionParticipant.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollectionParticipant.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrMovePrimary.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrMovePrimary.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrEnsureChunkVersionIsGreaterThan.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrEnsureChunkVersionIsGreaterThan.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCreateCollectionParticipant.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCreateCollectionParticipant.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStop.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStop.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMerge.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMerge.failed
*.*.mongodb.*.*.*.*.metrics.commands._getUserCacheGeneration.total
*.*.mongodb.*.*.*.*.metrics.commands._getUserCacheGeneration.failed
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkStatus.total
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRenameCollectionMetadata.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRenameCollectionMetadata.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunksMerge.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunksMerge.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCreateCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrCreateCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._addShard.total
*.*.mongodb.*.*.*.*.metrics.commands._addShard.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMoveChunk.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMoveChunk.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropDatabaseParticipant.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropDatabaseParticipant.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRefineCollectionShardKey.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRefineCollectionShardKey.failed
*.*.mongodb.*.*.*.*.metrics.commands._flushRoutingTableCacheUpdatesWithWriteConcern.total
*.*.mongodb.*.*.*.*.metrics.commands._flushRoutingTableCacheUpdatesWithWriteConcern.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRepairShardedCollectionChunksHistory.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRepairShardedCollectionChunksHistory.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveChunks.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveChunks.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrSetAllowMigrations.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrSetAllowMigrations.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStatus.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStatus.failed
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkCommit.total
*.*.mongodb.*.*.*.*.metrics.commands._recvChunkCommit.failed
*.*.mongodb.*.*.*.*.metrics.commands._migrateClone.total
*.*.mongodb.*.*.*.*.metrics.commands._migrateClone.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRefineCollectionShardKey.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRefineCollectionShardKey.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrUpdateZoneKeyRange.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrUpdateZoneKeyRange.failed
*.*.mongodb.*.*.*.*.metrics.commands._flushReshardingStateChange.total
*.*.mongodb.*.*.*.*.metrics.commands._flushReshardingStateChange.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrDropCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrSetAllowMigrations.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrSetAllowMigrations.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollectionParticipant.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrRenameCollectionParticipant.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrEnableSharding.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrEnableSharding.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveShardFromZone.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveShardFromZone.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAddShardToZone.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAddShardToZone.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrAbortReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrAbortReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._flushDatabaseCacheUpdatesWithWriteConcern.total
*.*.mongodb.*.*.*.*.metrics.commands._flushDatabaseCacheUpdatesWithWriteConcern.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAbortReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrAbortReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCreateDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCreateDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands._killOperations.total
*.*.mongodb.*.*.*.*.metrics.commands._killOperations.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveTags.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrRemoveTags.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrClearJumboFlag.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrClearJumboFlag.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrShardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrShardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrReshardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrReshardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkSplit.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkSplit.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStart.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrBalancerStart.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMovePrimary.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMovePrimary.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrShardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrShardCollection.failed
Note that the list above is based on the metrics offered by a9s MongoDB 5.0. In a9s MongoDB 7.0 the following metrics are not offered anymore:
*.*.mongodb.*.*.*.*.metrics.commands.moveChunk.total
*.*.mongodb.*.*.*.*.metrics.commands.moveChunk.failed
*.*.mongodb.*.*.*.*.metrics.commands.getLastError.total
*.*.mongodb.*.*.*.*.metrics.commands.getLastError.failed
*.*.mongodb.*.*.*.*.metrics.commands.getnonce.total
*.*.mongodb.*.*.*.*.metrics.commands.getnonce.failed
*.*.mongodb.*.*.*.*.metrics.commands.driverOIDtest.total
*.*.mongodb.*.*.*.*.metrics.commands.driverOIDtest.failed
*.*.mongodb.*.*.*.*.metrics.commands.availableQueryOptions.total
*.*.mongodb.*.*.*.*.metrics.commands.availableQueryOptions.failed
*.*.mongodb.*.*.*.*.metrics.commands._cloneCollectionOptionsFromPrimaryShard.total
*.*.mongodb.*.*.*.*.metrics.commands._cloneCollectionOptionsFromPrimaryShard.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropDatabase.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrDropDatabase.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMerge.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrCommitChunkMerge.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMoveChunk.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMoveChunk.failed
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrShardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._shardsvrShardCollection.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMovePrimary.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrMovePrimary.failed
*.*.mongodb.*.*.*.*.metrics.commands._configsvrShardCollection.total
*.*.mongodb.*.*.*.*.metrics.commands._configsvrShardCollection.failed
Error
A document that reports on getLastError
use.
*.*.mongodb.*.*.*.*.metrics.getLastError.wtime.num
*.*.mongodb.*.*.*.*.metrics.getLastError.wtime.totalMillis
*.*.mongodb.*.*.*.*.metrics.getLastError.wtimeouts
*.*.mongodb.*.*.*.*.metrics.getLastError.default.wtimeouts
*.*.mongodb.*.*.*.*.metrics.getLastError.default.unsatisfiable
Connections
A document that reports on the status of the connections. Use these values to assess the current load and capacity requirements of the server.
*.*.mongodb.*.*.*.*.connections.available
*.*.mongodb.*.*.*.*.connections.current
*.*.mongodb.*.*.*.*.connections.totalCreated
In a9s MongoDB 7.0, we also provide the following:
*.*.mongodb.*.*.*.*.connections.threaded
*.*.mongodb.*.*.*.*.connections.active
*.*.mongodb.*.*.*.*.connections.rejected
*.*.mongodb.*.*.*.*.connections.awaitingTopologyChanges
*.*.mongodb.*.*.*.*.connections.exhaustIsMaster
*.*.mongodb.*.*.*.*.connections.exhaustHello
Operation Counters
A document that reports on database operations by type since the mongod
instance last started. These numbers will grow
over time until the next restart. Analyze these values over time to track database utilization.
*.*.mongodb.*.*.*.*.opcounters.command
*.*.mongodb.*.*.*.*.opcounters.delete
*.*.mongodb.*.*.*.*.opcounters.getmore
*.*.mongodb.*.*.*.*.opcounters.insert
*.*.mongodb.*.*.*.*.opcounters.query
*.*.mongodb.*.*.*.*.opcounters.update
Operation Latencies
A document that reports on the latencies of certain database operations. The operation types listed here should be interpreted alongside the ones in the previous section.
*.*.mongodb.*.*.*.*.oplatencies.reads.ops
*.*.mongodb.*.*.*.*.oplatencies.reads.latency
*.*.mongodb.*.*.*.*.oplatencies.reads.queryableEncryptionLatencyMicros
*.*.mongodb.*.*.*.*.oplatencies.writes.ops
*.*.mongodb.*.*.*.*.oplatencies.writes.latency
*.*.mongodb.*.*.*.*.oplatencies.writes.queryableEncryptionLatencyMicros
*.*.mongodb.*.*.*.*.oplatencies.commands.ops
*.*.mongodb.*.*.*.*.oplatencies.commands.latency
*.*.mongodb.*.*.*.*.oplatencies.commands.queryableEncryptionLatencyMicros
*.*.mongodb.*.*.*.*.oplatencies.transactions.ops
*.*.mongodb.*.*.*.*.oplatencies.transactions.latency
*.*.mongodb.*.*.*.*.oplatencies.transactions.queryableEncryptionLatencyMicros
The queryableEncryptionLatencyMicros
metric is only available in a9s MongoDB 7.0.
Locks
A document that reports on concurrency operations such as the acquiring of locks. These metrics can be useful to see the modes of operations and whether there is high contention for certain operations. These metrics are only available in a9s MongoDB 7.0.
*.*.mongodb.*.*.*.*.locks.Database.acquireCount.r
*.*.mongodb.*.*.*.*.locks.Database.acquireCount.w
*.*.mongodb.*.*.*.*.locks.Database.acquireCount.W
*.*.mongodb.*.*.*.*.locks.oplog.acquireCount.w
*.*.mongodb.*.*.*.*.locks.ReplicationStateTransition.timeAcquiringMicros.w
*.*.mongodb.*.*.*.*.locks.ReplicationStateTransition.acquireWaitCount.w
*.*.mongodb.*.*.*.*.locks.ReplicationStateTransition.acquireCount.w
*.*.mongodb.*.*.*.*.locks.ReplicationStateTransition.acquireCount.W
*.*.mongodb.*.*.*.*.locks.ParallelBatchWriterMode.acquireCount.r
*.*.mongodb.*.*.*.*.locks.ParallelBatchWriterMode.acquireCount.W
*.*.mongodb.*.*.*.*.locks.Collection.acquireCount.r
*.*.mongodb.*.*.*.*.locks.Collection.acquireCount.w
*.*.mongodb.*.*.*.*.locks.Collection.acquireCount.W
*.*.mongodb.*.*.*.*.locks.Global.acquireCount.r
*.*.mongodb.*.*.*.*.locks.Global.acquireCount.w
*.*.mongodb.*.*.*.*.locks.Global.acquireCount.W
*.*.mongodb.*.*.*.*.locks.Mutex.acquireCount.r
*.*.mongodb.*.*.*.*.locks.FeatureCompatibilityVersion.acquireCount.w
*.*.mongodb.*.*.*.*.locks.FeatureCompatibilityVersion.acquireCount.r
The lock mode
s reported by the metrics above are described below:
Lock Mode | Lock Type | Description |
---|---|---|
w | Intent Exclusive Lock | A write lock on a coarse-grained resource (e.g. a collection) which enables exclusive write locks to be used for that resource |
W | Exclusive Lock | A write lock on a fine-grained resource (e.g. a record) which allows only one transaction to modify the resource and none to read |
r | Intent Shared Lock | A read lock on a coarse-grained resource (e.g. a collection) which enables exclusive read locks to be used for that resource |
R | Shared Lock | A read lock on a fine-grained resource (e.g. a record) which allows transactions to read the resource, but not write to it |
Metrics
As you might have noticed, the metric
document contains subdocuments that provide numerous metrics. However, it can
also provide some simpler metrics that reflect the current use and state of a running mongod
instance.
*.*.mongodb.*.*.*.*.metrics.cursor.open.noTimeout
*.*.mongodb.*.*.*.*.metrics.cursor.open.pinned
*.*.mongodb.*.*.*.*.metrics.cursor.open.total
*.*.mongodb.*.*.*.*.metrics.cursor.timedOut
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan10Minutes
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan15Seconds
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.greaterThanOrEqual10Minutes
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan1Second
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan30Seconds
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan1Minute
*.*.mongodb.*.*.*.*.metrics.cursor.lifespan.lessThan5Seconds
*.*.mongodb.*.*.*.*.metrics.operation.scanAndOrder
*.*.mongodb.*.*.*.*.metrics.operation.writeConflicts
*.*.mongodb.*.*.*.*.metrics.queryExecutor.scanned
*.*.mongodb.*.*.*.*.metrics.queryExecutor.scannedObjects
*.*.mongodb.*.*.*.*.metrics.record.moves
*.*.mongodb.*.*.*.*.metrics.ttl.deletedDocuments
*.*.mongodb.*.*.*.*.metrics.ttl.passes
In a9s MongoDB 7.0, the following are also available:
*.mongodb.*.*.*.*.metrics.diskSpaceMonitor.tookAction
*.mongodb.*.*.*.*.metrics.diskSpaceMonitor.passes
Note that as part of the metrics
document, there are many subdocuments that provide numerous other metrics. We expand
on some of these documents in the following sections.
Other
Uncategorized collection of metrics.
*.*.mongodb.*.*.*.*.extra_info.involuntary_context_switches
*.*.mongodb.*.*.*.*.extra_info.voluntary_context_switches
*.*.mongodb.*.*.*.*.extra_info.output_blocks
*.*.mongodb.*.*.*.*.extra_info.input_blocks
*.*.mongodb.*.*.*.*.extra_info.user_time_us
*.*.mongodb.*.*.*.*.extra_info.system_time_us
*.*.mongodb.*.*.*.*.extra_info.page_reclaims
*.*.mongodb.*.*.*.*.extra_info.maximum_resident_set_kb
*.*.mongodb.*.*.*.*.extra_info.input_blocks
*.*.mongodb.*.*.*.*.uptimeMillis
In a9s MongoDB 7.0, we also provide *.*.mongodb.*.*.*.*.extra_info.threads
.
System Metrics
Aside from the metrics shown above, this Data Service also provides system metrics, common to all a9s Data Services. They can be seen in the Graphite metrics documentation.
Cloud Foundry Org and Space Guid
The Platform Operators can enable support on a global level to prefix the Graphite metrics with the Cloud Foundry organization and space names. This means that all metrics of all Service Instances (not only yours!) contain that information.
In this case the Graphite metric paths have the following format:
<organization_guid>.<space_guid>.<service_guid>.<service_type>.<host>.<metric>
When you enable in addition the metrics_prefix
for your instance, you will
end up with the metric path format:
<metrics_prefix>.<organization_guid>.<space_guid>.<service_guid>.<service_type>.<host>.<metric>
Add a Syslog Endpoint
The cf update-service
command used with the -c flag
can let you stream your syslog to a third-party service. In this case, the command expects a JSON string containing the
syslog
key.
cf update-service my-mongodb-service \
-c '{ "syslog": ["logs4.your-syslog-endpoint.com:54321"]}'
Cloud Foundry Application Security Groups
This topic describes how to check whether a security group was created.
Each a9s Data Service will automatically create and update Cloud Foundry security groups in order to protect Service Instances to be accessed by applications not running in the same Cloud Foundry applications space. To get a better understanding about Security Groups you can have a look on the Understanding Application Security Groups topic.
Get Service Instance GUID
Run cf service INSTANCE_NAME --guid
to get the guid of the Service Instance.
$ cf service my-mongodb --guid
ca16f111-5073-40b7-973a-156c75dd3028
Check available Security Groups
To see all available security groups use cf security-groups
.
$ cf security-groups
Getting security groups as demo@anynines.com
OK
Name Organization Space
#0 public_networks
#1 dns
#2 tcp_open
#3 guard_432fb752-876d-443b-a311-a075f4df2237 demonstrations demo
#4 guard_ca16f111-5073-40b7-973a-156c75dd3028 demonstrations demo
There we can see a security group with the named guard_ca16f111-5073-40b7-973a-156c75dd3028
was successfully created.
In some circumstances the connection between the application and the Service Instance is not possible, in this case check if a security group was created.
Backup and Restore Service Instances
a9s MongoDB provides an easy way to create backups and restore them if needed. For a more detailed description, please see the a9s Service Dashboard documentation.
Make a Service Instance Locally Available
It is possible to access any of the a9s Data Services locally. That means you can connect with a local client to the service for any purpose, such as debugging. CF provides a smart way to create SSH forward tunnels via a pushed application. For more information about this feature, see the Accessing Apps with SSH section of the CF documentation.
First of all you must have an application bound to the service. How to do this see Bind an Application to a Service Instance.
NOTE: cf ssh
support must be enabled in the platform. Ask your administrator if you are not sure.
Get The Service Url and Credentials
When you follow the Obtain Service Instance Access Credentials instruction, you will get the hostname and credentials of the service:
$ cf env a9s-mongodb-app
Getting env variables for app a9s-mongodb-app in org test / space test as admin...
OK
System-Provided:
{
"VCAP_SERVICES": {
"a9s-mongodb": [
{
"credentials": {
"host": [
"d67901c.service.dc1.a9svs"
],
"password": "a9s-brk-usr",
"username": "a9s-password"
},
"label": "a9s-mongodb",
"name": "my-mongodb-service",
"plan": "mongodb-cluster-small"
}
]
}
}
...
Notice the host d67901c.service.dc1.a9svs
, the username a9s-brk-usr
and the password a9s-password
. You will need
this in the next step.
Create a Tunnel to The Service
With the cf ssh
command mentioned before, you can create a ssh forward tunnel to the management dashboard.
Use port 27017 to connect to the a9s MongoDB Instance.
$ cf ssh a9s-mongodb-app -L 27017:d67901c.service.dc1.a9svs:27017
vcap@956aaf4e-6da9-4f69-4b1d-8e631a403312:~$
When the ssh tunnel is open you can access the instance over the address localhost:27017
.
NOTE: Don't forget to close the session with exit
.
Service keys
To gain access to the service manually rather than binding apps to it, you can use service keys.
Creating a service key
To create a key to the Service Instance mongodb1
call mykey
run:
cf create-service-key mongodb1 mykey
Listing service keys
To list all the keys for the mongodb1
Service Instance run this:
cf service-keys mongodb1
Accessing service keys
To obtain the key mykey
from the mongodb1
Service Instance run:
cf service-key mongodb1 mykey
Deleting service keys
To delete a service key mykey
from the Service Instance mongodb1
run:
cf delete-service-key mongodb1 mykey
Default Roles
All users, upon creation, are granted the following roles on the default database:
Role | Type | Description |
---|---|---|
collectionModifierRole | Custom role | Grants the user the collMod and compact privileges. |
readWrite | Built-in | Grants the user both read and write privileges. |
Creating a Fork of a Service Instance
Forking a Service Instance involves creating a backup of it, and restoring it to a different Service Instance. This procedure can be done either manually or through the Disaster Recovery feature.
Fork an a9s MongoDB Service Instance Manually
This method can also be used to migrate to a newer MongoDB version. For migration, it is recommended that no new data is written into MongoDB during the procedure (e.g., stop the app bound to it prior to starting with these steps).
For this process, you will need a Service Instance you want to fork and a new Service Instance you want to fork to.
To learn how to create a new Service Instance, look at the Create a Service Instance
section. You can get a list of all of your a9s-mongodb
Service Instances by running the following command:
cf s | grep a9s-mongodb
The output should be a table of your a9s-mongodb
instances:
mongodb1 a9s-mongodb70 mongodb-nano create succeeded
mongodb2 a9s-mongodb70 mongodb-nano create succeeded
In this guide we will be forking from mongodb1
to mongodb2
.
After you have established which Service Instances you will be operating on, you will need service keys. For information on creating, obtaining and managing service keys see the Service keys section.
The next thing to do is to log into the Service Instance dashboard to set the encryption password (if it hasn't been
set already) and create a backup. To find your dashboard URL, for the instance you want to fork from (mongodb1
in this
example), run this:
cf service mongodb1 | grep -E '^|dashboard:.*' --color='always'
Then log into the dashboard using your Cloud Foundry credentials.
Make sure you set an encryption password for the backups using the Service Instance dashboard (Change Backup Settings
).
Create a backup using the dashboard. Download the backup to your local machine. The filename will be something like
racsd92baee-1522222422893
. Decrypt the backup and write its contents to a file:
cat racsd92baee-1522222422893 | openssl enc -aes256 -md md5 -d -pass 'pass:mytopsecretpassword' | gunzip -c > backup.gz
In case you are not able to download the backup using the a9s Dashboard, you must contact the Platform Operator.
For the next steps you will need the MongoDB tools. You can install them by following the official MongoDB installation manual.
To upload the backup to the new fork Service Instance you will need to create a tunnel, for port 27017, using an app bound to the new Service Instance. As you are creating a new instance, that you likely don't want connected to production until it has the data, its advisable to deploy a small demo app for tunneling through (you can dispose of it later). A small app can be found here, you will need to edit the manifest, then follow the section Make a Service Instance Locally Available.
To run the restore you will need the credentials for the Service Instance that will become a fork. In this example the credentials can be found like this:
cf service-key mongodb2 mykey
Then carry out the restore.
Single Service Instance
For the MongoDB restoration it is required use the mongorestore
program. For information on restoration commands see
the Official MongoDB documentation.
Summary:
<original-default_database>
- It is the name of the previous database present at the backup. Noteworthy, if you do not have the name of the database, it is necessary to contact the platform operator.<default_database>
- It is the name of the current database when the backup will be restored.<backup.gz>
- Backup dump previously downloaded, decrypted, and uncompressed.
mongorestore --uri="mongodb://<username>:<password>@localhost:27017/<default_database>" \
--gzip --archive=<backup.gz> --nsInclude='<original-default_database>.*' \
--nsFrom='<original-default_database>.*' --nsTo='<default_database>.*'
Example:
mongorestore --uri="mongodb://a9s-brk-usr-733e61a812ea27627f991d91f4a6b48db5631294:a9se1d35f1466318718cb508be4856d33631fd8c4b9@localhost:27018/mod94cfad" \
--gzip --archive=/tmp/mydump.gz --nsInclude='mod3ce8d.*' --nsFrom='mod3ce8d.*' --nsTo='mod94cfad.*'
If this is an SSL instance, remember to add the SSL options:
mongorestore --uri="mongodb://<username>:<password>@localhost:27017/<db-name>" \
--gzip --archive=<backup.gz> --nsInclude='<original-default_database>.*' \
--nsFrom='<original-default_database>.*' --nsTo='<default_database>.*' --ssl \
--sslAllowInvalidCertificates
For information on restoration commands see the Official MongoDB documentation.
Cluster Service Instance
To restore a cluster Service Instance, you can either contact the Platform Operator or alternatively you can use the Disaster Recovery feature.
Fork an a9s MongoDB Service Instance Using the Disaster Recovery Feature
As of the current release, the approach using Disaster Recovery only works when forking between two instances within the same major version of MongoDB.
Follow the steps described in Disaster Recovery to create a fork of an existing a9s MongoDB Service Instance.
Creating Local Copy of the Data
For creating a local copy of the data, you can follow these steps at Creating Local Copy of the Data.
Setup Disk Usage Alerts
Each service comes with the a9s Parachute. This component monitors ephemeral and persistent disk usage. See the a9s Parachute documentation how to configure the component.
Enable AppDynamics support
This feature is disabled by default. You can ask your operator to enable this feature for your Service Instance. When enabled, any user created in the MongoDB instance will have the required privileges as described here.
Any service binding (cf bind-service
) created before AppDynamics support was enabled will have to be re-created
(execute cf unbind-service
followed by cf bind-service
). This is due to the fact the Cloud Foundry currently does
not support implementing logic that will automate this process.