1. We have an in-house developed tool that tracks git and mercurial commits and calculates the test coverage and code quality for each individual developer.
2. We use jira to track the number of points each developer burns (points are shared between developer, reviewer and QA). We also track the number of bugs each developer introduces because closing a bugfix is not possible without first assigning the developer who introduced the bug to the jira task.
3. We use peer reviews where each team member rates each other team member on a scale from 1 to 5 (3 being considered sufficient) on aspects like availability, communication, reliability and result orientation.
4. Team leaders offer subjective input on each team member.
Of course, many of the metrics will be skewed or won't reflect the reality, which is why the team lead has the right to make adjustments to the final mark.
This being said, one of my colleagues and friend was "forced" to quit the company because he scored really low on the jira burn rate metric. He was given a tremendously huge task which nobody cared to properly estimate and break into smaller tasks. As a result he spent 6 monts working on the equivalent of 2 weeks of estimation points. The management (including the team lead which is otherwise a great leader and an awesome person) didn't want to assume any blame for this.